summaryrefslogtreecommitdiffstats
path: root/fs
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 14:57:03 -0700
commitbeeaab03ee04e5dd5e0ce48732a0d8e59554ef54 (patch)
treebbeaf091242e9e49d72c46c4031bebde15db2cd4 /fs
parent08997c60a04eb38343ff7b5c2cca39468e76eebd (diff)
downloadlinux-stable-beeaab03ee04e5dd5e0ce48732a0d8e59554ef54.tar.gz
linux-stable-beeaab03ee04e5dd5e0ce48732a0d8e59554ef54.tar.bz2
linux-stable-beeaab03ee04e5dd5e0ce48732a0d8e59554ef54.zip
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>
Diffstat (limited to 'fs')
-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 3a0df7a1b810..03a1ab83a65b 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -3995,6 +3995,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;