Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7f30866 authored by Daniel Rosenberg's avatar Daniel Rosenberg Committed by Ritesh Harjani
Browse files

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: default avatarDaniel Rosenberg <drosen@google.com>
Bug: 72007585
(cherry picked from commit 3e3abc76)
Git-Commit: 3e3abc76
Git-Repo: https://android.googlesource.com/kernel/common/


Signed-off-by: default avatarRitesh Harjani <riteshh@codeaurora.org>
parent d0edcda0
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -821,8 +821,8 @@ static int sdcardfs_setattr(struct vfsmount *mnt, struct dentry *dentry, struct
	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);
@@ -837,12 +837,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, 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;
}
@@ -868,8 +868,7 @@ static int sdcardfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
		goto out;
	sdcardfs_copy_and_fix_attrs(d_inode(dentry),
			      d_inode(lower_path.dentry));
	err = sdcardfs_fillattr(mnt, d_inode(dentry), stat);
	stat->blocks = lower_stat.blocks;
	err = sdcardfs_fillattr(mnt, d_inode(dentry), &lower_stat, stat);
out:
	sdcardfs_put_lower_path(dentry, &lower_path);
	return err;