fs: Provide __inode_get_bytes()
authorJan Kara <jack@suse.cz>
Tue, 8 Aug 2017 07:54:36 +0000 (09:54 +0200)
committerJan Kara <jack@suse.cz>
Thu, 17 Aug 2017 20:06:03 +0000 (22:06 +0200)
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>
fs/stat.c
include/linux/fs.h

index c35610845ab19f8c17e4ef96e851cddc2205bba9..8a6aa8caf8917fea570ff861c1247ac5f8a519e3 100644 (file)
--- 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;
 }
index 6e1fd5d2124877c16bbbfab4487a772c8f7e37ee..d6e9ab7f184f6b20b0ac57a902a8eefe26d57689 100644 (file)
@@ -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 *,