diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2018-05-17 10:53:05 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2018-05-31 11:06:11 +0200 |
commit | 80ea09a002bf4384fda5f087b1b198b3a274f9da (patch) | |
tree | 08ee21a4a557b0dfbd3878ab03d6225d3c5c7dd4 /include/linux/fs.h | |
parent | b148cba403f4fc9c99f0a596e35047395b748169 (diff) | |
download | lwn-80ea09a002bf4384fda5f087b1b198b3a274f9da.tar.gz lwn-80ea09a002bf4384fda5f087b1b198b3a274f9da.zip |
vfs: factor out inode_insert5()
Split out common helper for race free insertion of an already allocated
inode into the cache. Use this from iget5_locked() and
insert_inode_locked4(). Make iget5_locked() use new_inode()/iput() instead
of alloc_inode()/destroy_inode() directly.
Also export to modules for use by filesystems which want to preallocate an
inode before file/directory creation.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 760d8da1b6c7..4f637a9b213d 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2879,6 +2879,10 @@ extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval, int (*test)(struct inode *, void *), void *data); extern struct inode *ilookup(struct super_block *sb, unsigned long ino); +extern struct inode *inode_insert5(struct inode *inode, unsigned long hashval, + int (*test)(struct inode *, void *), + int (*set)(struct inode *, void *), + void *data); extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *); extern struct inode * iget_locked(struct super_block *, unsigned long); extern struct inode *find_inode_nowait(struct super_block *, |