mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 10:41:49 +02:00
fs: relocate and tidy up ihold()
The placement was illogical, move it next to igrab(). Take this opportunity to add docs and an assert on the refcount. While its modification remains gated with a WARN_ON, the new assert will also dump the inode state which might aid debugging. No functional changes. Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> Link: https://patch.msgid.link/20260421182538.1215894-3-mjguzik@gmail.com Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
769e143b11
commit
ac8bcfc07d
20
fs/inode.c
20
fs/inode.c
|
|
@ -518,15 +518,6 @@ static void init_once(void *foo)
|
|||
inode_init_once(inode);
|
||||
}
|
||||
|
||||
/*
|
||||
* get additional reference to inode; caller must already hold one.
|
||||
*/
|
||||
void ihold(struct inode *inode)
|
||||
{
|
||||
WARN_ON(atomic_inc_return(&inode->i_count) < 2);
|
||||
}
|
||||
EXPORT_SYMBOL(ihold);
|
||||
|
||||
struct wait_queue_head *inode_bit_waitqueue(struct wait_bit_queue_entry *wqe,
|
||||
struct inode *inode, u32 bit)
|
||||
{
|
||||
|
|
@ -1572,6 +1563,17 @@ ino_t iunique(struct super_block *sb, ino_t max_reserved)
|
|||
}
|
||||
EXPORT_SYMBOL(iunique);
|
||||
|
||||
/**
|
||||
* ihold - get a reference on the inode, provided you already have one
|
||||
* @inode: inode to operate on
|
||||
*/
|
||||
void ihold(struct inode *inode)
|
||||
{
|
||||
VFS_BUG_ON_INODE(icount_read_once(inode) < 1, inode);
|
||||
WARN_ON(atomic_inc_return(&inode->i_count) < 2);
|
||||
}
|
||||
EXPORT_SYMBOL(ihold);
|
||||
|
||||
struct inode *igrab(struct inode *inode)
|
||||
{
|
||||
spin_lock(&inode->i_lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user