diff options
author | Jan Kara <jack@suse.cz> | 2017-08-08 09:54:36 +0200 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2017-08-17 22:06:03 +0200 |
commit | f4a8116a4c8c8f754d0ec1498a2ba4b63d114e6a (patch) | |
tree | d3065b20975952041d211e6d0f221db6542cde19 | |
parent | 3ab167d2ba10017a430e427ddd3d690a74f8692e (diff) |
fs: Provide __inode_get_bytes()
Provide helper __inode_get_bytes() which assumes i_lock is already
acquired. Quota code will need this to be able to use i_lock to protect
consistency of quota accounting information and inode usage.
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/stat.c | 2 | ||||
-rw-r--r-- | include/linux/fs.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/fs/stat.c b/fs/stat.c index c35610845ab1..8a6aa8caf891 100644 --- a/fs/stat.c +++ b/fs/stat.c @@ -710,7 +710,7 @@ loff_t inode_get_bytes(struct inode *inode) loff_t ret; spin_lock(&inode->i_lock); - ret = (((loff_t)inode->i_blocks) << 9) + inode->i_bytes; + ret = __inode_get_bytes(inode); spin_unlock(&inode->i_lock); return ret; } diff --git a/include/linux/fs.h b/include/linux/fs.h index 6e1fd5d21248..d6e9ab7f184f 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2998,6 +2998,10 @@ void __inode_add_bytes(struct inode *inode, loff_t bytes); void inode_add_bytes(struct inode *inode, loff_t bytes); void __inode_sub_bytes(struct inode *inode, loff_t bytes); void inode_sub_bytes(struct inode *inode, loff_t bytes); +static inline loff_t __inode_get_bytes(struct inode *inode) +{ + return (((loff_t)inode->i_blocks) << 9) + inode->i_bytes; +} loff_t inode_get_bytes(struct inode *inode); void inode_set_bytes(struct inode *inode, loff_t bytes); const char *simple_get_link(struct dentry *, struct inode *, |