aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2010-04-21 14:05:55 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-12 15:02:38 -0700
commit76e0dc2e41e9d151ce0364340227dabf5ee479d5 (patch)
treef7d1de06b8b6f6c2b4febd82f37f0dcb9df909ae
parent67dc67f6a611542cc5cf349747a064da0cef2af3 (diff)
ocfs2: Update VFS inode's id info after reflink.
commit c21a534e2f24968cf74976a4e721ac194db30ded upstream. In reflink we update the id info on the disk but forgot to update the corresponding information in the VFS inode. Update them accordingly when we want to preserve the attributes. Reported-by: Jeff Liu <jeff.liu@oracle.com> Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--fs/ocfs2/refcounttree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index 8ae65c9c020..a8e85720d1f 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -4083,6 +4083,9 @@ static int ocfs2_complete_reflink(struct inode *s_inode,
di->i_attr = s_di->i_attr;
if (preserve) {
+ t_inode->i_uid = s_inode->i_uid;
+ t_inode->i_gid = s_inode->i_gid;
+ t_inode->i_mode = s_inode->i_mode;
di->i_uid = s_di->i_uid;
di->i_gid = s_di->i_gid;
di->i_mode = s_di->i_mode;