aboutsummaryrefslogtreecommitdiff
path: root/fs/sdcardfs/inode.c
diff options
context:
space:
mode:
authorDaniel Rosenberg <drosen@google.com>2018-01-29 21:31:21 -0800
committerMoyster <oysterized@gmail.com>2019-07-20 12:20:44 +0200
commit633b625cd84e4f0a75b9e2087c6b0551870c320b (patch)
tree1ba96b143b6196249551dd668a6e1fd4dc858a14 /fs/sdcardfs/inode.c
parent33c8b08c2bbe034fc01b346b1e6ce94913efb8ef (diff)
ANDROID: sdcardfs: Use lower getattr times/size
We now use the lower filesystem's getattr for time and size related information. Change-Id: I3dd05614a0c2837a13eeb033444fbdf070ddce2a Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 72007585
Diffstat (limited to 'fs/sdcardfs/inode.c')
-rwxr-xr-xfs/sdcardfs/inode.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/fs/sdcardfs/inode.c b/fs/sdcardfs/inode.c
index 5ed4db35d..5fa458c5c 100755
--- a/fs/sdcardfs/inode.c
+++ b/fs/sdcardfs/inode.c
@@ -731,8 +731,8 @@ out_err:
return err;
}
-static int sdcardfs_fillattr(struct vfsmount *mnt,
- struct inode *inode, struct kstat *stat)
+static int sdcardfs_fillattr(struct vfsmount *mnt, struct inode *inode,
+ struct kstat *lower_stat, struct kstat *stat)
{
struct sdcardfs_inode_info *info = SDCARDFS_I(inode);
struct sdcardfs_inode_data *top = top_data_get(info);
@@ -748,12 +748,12 @@ static int sdcardfs_fillattr(struct vfsmount *mnt,
stat->uid = make_kuid(&init_user_ns, top->d_uid);
stat->gid = make_kgid(&init_user_ns, get_gid(mnt, sb, top));
stat->rdev = inode->i_rdev;
- stat->size = i_size_read(inode);
- stat->atime = inode->i_atime;
- stat->mtime = inode->i_mtime;
- stat->ctime = inode->i_ctime;
- stat->blksize = (1 << inode->i_blkbits);
- stat->blocks = inode->i_blocks;
+ stat->size = lower_stat->size;
+ stat->atime = lower_stat->atime;
+ stat->mtime = lower_stat->mtime;
+ stat->ctime = lower_stat->ctime;
+ stat->blksize = lower_stat->blksize;
+ stat->blocks = lower_stat->blocks;
data_put(top);
return 0;
}
@@ -779,8 +779,7 @@ static int sdcardfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
goto out;
sdcardfs_copy_and_fix_attrs(dentry->d_inode,
lower_path.dentry->d_inode);
- err = sdcardfs_fillattr(mnt, dentry->d_inode, stat);
- stat->blocks = lower_stat.blocks;
+ err = sdcardfs_fillattr(mnt, dentry->d_inode, &lower_stat, stat);
out:
sdcardfs_put_lower_path(dentry, &lower_path);
return err;