Unionfs: bugfix -- set copied up open file mode to read and write
authorErez_Zadok <ezk@cs.sunysb.edu>
Sat, 14 Jul 2007 07:25:02 +0000 (03:25 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Sun, 6 Mar 2011 08:42:34 +0000 (03:42 -0500)
When we copyup a file, we used to set the new file's open mode to write
only.  But we need read permission too.  We need write permission because
we're creating a new file; and we need read permission because the original
file had to have been readable.  If we don't set the new files permission to
BOTH read and write, we get -EBADF when trying calling vfs_read/vfs_write on
a copied up file.  (This fix is somewhat related to unionfs_readpage fixes
that use vfs_read instead of calling the lower readpage.)

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/copyup.c

index 09d3bd441f02e6c30ef753e2fc5ba38317bf316c..eb5d5a0d50203a576c22ea17d352dfa1318f6eea 100644 (file)
@@ -230,7 +230,7 @@ static int __copyup_reg_data(struct dentry *dentry,
        output_mnt = unionfs_mntget(sb->s_root, new_bindex);
        branchget(sb, new_bindex);
        output_file = dentry_open(new_lower_dentry, output_mnt,
-                                 O_WRONLY | O_LARGEFILE);
+                                 O_RDWR | O_LARGEFILE);
        if (IS_ERR(output_file)) {
                err = PTR_ERR(output_file);
                goto out_close_in2;