In ovl_dentry_open(), ovl_drop_write() is called after vfs_open() - but is this actually necessary? Can't we just drop it post-copyup? After all, that's all we wanted the write lock for, right? David --- --- a/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c @@ -356,16 +356,14 @@ static int ovl_dentry_open(struct dentry *dentry, struct inode *inode, err = ovl_copy_up_last(dentry, NULL, true); else err = ovl_copy_up(dentry); + ovl_drop_write(dentry); if (err) - goto out_drop_write; + goto out; ovl_path_upper(dentry, &realpath); } err = vfs_open(&realpath, d_backing_inode(realpath.dentry), file, cred); -out_drop_write: - if (want_write) - ovl_drop_write(dentry); out: return err; } -- To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html