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
This commit is contained in:
parent
a81d322647
commit
4325c9c335
1 changed files with 9 additions and 10 deletions
|
@ -816,8 +816,8 @@ out_err:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sdcardfs_fillattr(struct vfsmount *mnt,
|
static int sdcardfs_fillattr(struct vfsmount *mnt, struct inode *inode,
|
||||||
struct inode *inode, struct kstat *stat)
|
struct kstat *lower_stat, struct kstat *stat)
|
||||||
{
|
{
|
||||||
struct sdcardfs_inode_info *info = SDCARDFS_I(inode);
|
struct sdcardfs_inode_info *info = SDCARDFS_I(inode);
|
||||||
struct sdcardfs_inode_data *top = top_data_get(info);
|
struct sdcardfs_inode_data *top = top_data_get(info);
|
||||||
|
@ -833,12 +833,12 @@ static int sdcardfs_fillattr(struct vfsmount *mnt,
|
||||||
stat->uid = make_kuid(&init_user_ns, top->d_uid);
|
stat->uid = make_kuid(&init_user_ns, top->d_uid);
|
||||||
stat->gid = make_kgid(&init_user_ns, get_gid(mnt, sb, top));
|
stat->gid = make_kgid(&init_user_ns, get_gid(mnt, sb, top));
|
||||||
stat->rdev = inode->i_rdev;
|
stat->rdev = inode->i_rdev;
|
||||||
stat->size = i_size_read(inode);
|
stat->size = lower_stat->size;
|
||||||
stat->atime = inode->i_atime;
|
stat->atime = lower_stat->atime;
|
||||||
stat->mtime = inode->i_mtime;
|
stat->mtime = lower_stat->mtime;
|
||||||
stat->ctime = inode->i_ctime;
|
stat->ctime = lower_stat->ctime;
|
||||||
stat->blksize = (1 << inode->i_blkbits);
|
stat->blksize = lower_stat->blksize;
|
||||||
stat->blocks = inode->i_blocks;
|
stat->blocks = lower_stat->blocks;
|
||||||
data_put(top);
|
data_put(top);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -864,8 +864,7 @@ static int sdcardfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
|
||||||
goto out;
|
goto out;
|
||||||
sdcardfs_copy_and_fix_attrs(d_inode(dentry),
|
sdcardfs_copy_and_fix_attrs(d_inode(dentry),
|
||||||
d_inode(lower_path.dentry));
|
d_inode(lower_path.dentry));
|
||||||
err = sdcardfs_fillattr(mnt, d_inode(dentry), stat);
|
err = sdcardfs_fillattr(mnt, d_inode(dentry), &lower_stat, stat);
|
||||||
stat->blocks = lower_stat.blocks;
|
|
||||||
out:
|
out:
|
||||||
sdcardfs_put_lower_path(dentry, &lower_path);
|
sdcardfs_put_lower_path(dentry, &lower_path);
|
||||||
return err;
|
return err;
|
||||||
|
|
Loading…
Add table
Reference in a new issue