diff options
| author | Daniel Rosenberg <drosen@google.com> | 2018-01-29 21:31:21 -0800 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2019-07-20 12:20:44 +0200 |
| commit | 633b625cd84e4f0a75b9e2087c6b0551870c320b (patch) | |
| tree | 1ba96b143b6196249551dd668a6e1fd4dc858a14 /fs | |
| parent | 33c8b08c2bbe034fc01b346b1e6ce94913efb8ef (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')
| -rwxr-xr-x | fs/sdcardfs/inode.c | 19 |
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; |
