Thomas, I was able to reproduce your problem (which is also bug #624) and I
have a fix which worked for my test cases.  Can you try the following patch
and let me know:

        https://bugzilla.fsl.cs.sunysb.edu/attachment.cgi?id=233

I also included the patch below.  This was for 2.6.29, but should apply to
other kernels as well.

Thanks,
Erez.

##############################################################################

Unionfs: fix readonly nfs2/3 permission handling

In unionfs_permission: NFSv2/3 return EACCES on readonly-exported, locally
readonly-mounted file systems, instead of EROFS like other file systems do.
So we have no choice here but to intercept this and ignore it for NFS
branches marked readonly.

Signed-off-by: Erez Zadok <e...@cs.sunysb.edu>
diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
index 7c17093..bbb44d0 100644
--- a/fs/unionfs/inode.c
+++ b/fs/unionfs/inode.c
@@ -843,6 +843,19 @@ static int unionfs_permission(struct inode *inode, int 
mask)
                }
 
                /*
+                * NFS HACK: NFSv2/3 return EACCES on readonly-exported,
+                * locally readonly-mounted file systems, instead of EROFS
+                * like other file systems do.  So we have no choice here
+                * but to intercept this and ignore it for NFS branches
+                * marked readonly.
+                */
+               if (err && err == -EACCES &&
+                   is_robranch_super(inode->i_sb, bindex) &&
+                   lower_inode->i_sb->s_magic == NFS_SUPER_MAGIC)
+                       err = 0;
+
+
+               /*
                 * The permissions are an intersection of the overall directory
                 * permissions, so we fail if one fails.
                 */
_______________________________________________
unionfs mailing list: http://unionfs.filesystems.org/
unionfs@mail.fsl.cs.sunysb.edu
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to