vfs: do get_write_access() on upper layer of overlayfs
[cascardo/linux.git] / fs / locks.c
index c1656cf..b242d5b 100644 (file)
@@ -1618,7 +1618,8 @@ check_conflicting_open(const struct dentry *dentry, const long arg, int flags)
        if (flags & FL_LAYOUT)
                return 0;
 
-       if ((arg == F_RDLCK) && (atomic_read(&inode->i_writecount) > 0))
+       if ((arg == F_RDLCK) &&
+           (atomic_read(&d_real_inode(dentry)->i_writecount) > 0))
                return -EAGAIN;
 
        if ((arg == F_WRLCK) && ((d_count(dentry) > 1) ||