diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2014-02-21 04:02:35 +0900 |
---|---|---|
committer | Daniel Phillips <daniel@tux3.org> | 2014-02-21 04:02:35 +0900 |
commit | 984289419b59cafe0d3e46b490105947b18a7366 (patch) | |
tree | b3e1ad77cf3869d8e8703af22daeac5da9886723 | |
parent | 9eac49c1499f611590324fb9ce914726771ef9dd (diff) | |
download | linux-tux3-984289419b59cafe0d3e46b490105947b18a7366.tar.gz |
tux3: Use i_size_read() in kernel
If we are not holding inode->i_mutex, we should use i_size_read().
Because inode->i_size is 64bits, so read can race with write on 32bits
arch.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
-rw-r--r-- | fs/tux3/inode.c | 2 | ||||
-rw-r--r-- | fs/tux3/writeback_iattrfork.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/tux3/inode.c b/fs/tux3/inode.c index e6d1082c931dba..b31fea57ae95fb 100644 --- a/fs/tux3/inode.c +++ b/fs/tux3/inode.c @@ -833,7 +833,7 @@ int tux3_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat * * But, it is purely unnecessary overhead. */ - stat->blocks = ALIGN(inode->i_size, sb->blocksize) >> 9; + stat->blocks = ALIGN(i_size_read(inode), sb->blocksize) >> 9; return 0; } diff --git a/fs/tux3/writeback_iattrfork.c b/fs/tux3/writeback_iattrfork.c index d2990c3dfed0f2..724a2344d6ca23 100644 --- a/fs/tux3/writeback_iattrfork.c +++ b/fs/tux3/writeback_iattrfork.c @@ -36,7 +36,7 @@ static void idata_copy(struct inode *inode, struct tux3_iattr_data *idata) idata->i_gid = i_gid_read(inode); idata->i_nlink = inode->i_nlink; idata->i_rdev = inode->i_rdev; - idata->i_size = inode->i_size; + idata->i_size = i_size_read(inode); // idata->i_atime = inode->i_atime; idata->i_mtime = inode->i_mtime; idata->i_ctime = inode->i_ctime; |