commit 44651c6cf407977f7fcdb80fa4d35bd2cd17e541
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date:   Wed May 23 18:43:40 2007 -0400

    set gid/uid to 0 in ofd_release_sr

diff --git a/fs/unionfs/odf.c b/fs/unionfs/odf.c
index 8ad279f..1d4816b 100644
--- a/fs/unionfs/odf.c
+++ b/fs/unionfs/odf.c
@@ -367,6 +367,8 @@ int odf_release_sr(struct inode *inode)
        struct odf_dentry_info *odi_sr, *odi_rc;
        char name[ODF_INAME_LEN];
        int err = 0;
+       uid_t olduid = current->fsuid;
+       gid_t oldgid = current->fsgid;
 
        odi_sr = UNIONFS_SB(inode->i_sb)->odf->odi_sr;
        odi_rc = UNIONFS_SB(inode->i_sb)->odf->odi_rc;
@@ -399,8 +401,12 @@ int odf_release_sr(struct inode *inode)
        }
 
        lock_rename(old_dentry->d_parent, new_dentry->d_parent);
+       current->fsuid = 0;
+       current->fsgid = 0;
        err = vfs_rename(old_dentry->d_parent->d_inode, old_dentry,
                                new_dentry->d_parent->d_inode, new_dentry);
+       current->fsuid = olduid;
+       current->fsgid = oldgid;
        unlock_rename(old_dentry->d_parent, new_dentry->d_parent);
 
 out_unlock:
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to