mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 12:14:10 +08:00
Merge patch series "two little writeback cleanups v2"
Christoph Hellwig <hch@lst.de> says: This fixes one (of multiple) sparse warnings in fs-writeback.c, and then reshuffles the code a bit that only the proper high level API instead of low-level helpers is exported. * patches from https://lore.kernel.org/r/20241112054403.1470586-1-hch@lst.de: writeback: wbc_attach_fdatawrite_inode out of line writeback: add a __releases annoation to wbc_attach_and_unlock_inode Link: https://lore.kernel.org/r/20241112054403.1470586-1-hch@lst.de Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
commit
39bb1bf0b4
@ -290,7 +290,6 @@ void __inode_attach_wb(struct inode *inode, struct folio *folio)
|
||||
if (unlikely(cmpxchg(&inode->i_wb, NULL, wb)))
|
||||
wb_put(wb);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__inode_attach_wb);
|
||||
|
||||
/**
|
||||
* inode_cgwb_move_to_attached - put the inode onto wb->b_attached list
|
||||
@ -731,8 +730,9 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
|
||||
* writeback completion, wbc_detach_inode() should be called. This is used
|
||||
* to track the cgroup writeback context.
|
||||
*/
|
||||
void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
static void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
__releases(&inode->i_lock)
|
||||
{
|
||||
if (!inode_cgwb_enabled(inode)) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
@ -762,7 +762,24 @@ void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css)))
|
||||
inode_switch_wbs(inode, wbc->wb_id);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wbc_attach_and_unlock_inode);
|
||||
|
||||
/**
|
||||
* wbc_attach_fdatawrite_inode - associate wbc and inode for fdatawrite
|
||||
* @wbc: writeback_control of interest
|
||||
* @inode: target inode
|
||||
*
|
||||
* This function is to be used by __filemap_fdatawrite_range(), which is an
|
||||
* alternative entry point into writeback code, and first ensures @inode is
|
||||
* associated with a bdi_writeback and attaches it to @wbc.
|
||||
*/
|
||||
void wbc_attach_fdatawrite_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
{
|
||||
spin_lock(&inode->i_lock);
|
||||
inode_attach_wb(inode, NULL);
|
||||
wbc_attach_and_unlock_inode(wbc, inode);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wbc_attach_fdatawrite_inode);
|
||||
|
||||
/**
|
||||
* wbc_detach_inode - disassociate wbc from inode and perform foreign detection
|
||||
@ -1225,6 +1242,13 @@ static void bdi_split_work_to_wbs(struct backing_dev_info *bdi,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
__releases(&inode->i_lock)
|
||||
{
|
||||
spin_unlock(&inode->i_lock);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_CGROUP_WRITEBACK */
|
||||
|
||||
/*
|
||||
|
@ -213,9 +213,6 @@ static inline void wait_on_inode(struct inode *inode)
|
||||
#include <linux/bio.h>
|
||||
|
||||
void __inode_attach_wb(struct inode *inode, struct folio *folio);
|
||||
void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
__releases(&inode->i_lock);
|
||||
void wbc_detach_inode(struct writeback_control *wbc);
|
||||
void wbc_account_cgroup_owner(struct writeback_control *wbc, struct folio *folio,
|
||||
size_t bytes);
|
||||
@ -254,22 +251,8 @@ static inline void inode_detach_wb(struct inode *inode)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* wbc_attach_fdatawrite_inode - associate wbc and inode for fdatawrite
|
||||
* @wbc: writeback_control of interest
|
||||
* @inode: target inode
|
||||
*
|
||||
* This function is to be used by __filemap_fdatawrite_range(), which is an
|
||||
* alternative entry point into writeback code, and first ensures @inode is
|
||||
* associated with a bdi_writeback and attaches it to @wbc.
|
||||
*/
|
||||
static inline void wbc_attach_fdatawrite_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
{
|
||||
spin_lock(&inode->i_lock);
|
||||
inode_attach_wb(inode, NULL);
|
||||
wbc_attach_and_unlock_inode(wbc, inode);
|
||||
}
|
||||
void wbc_attach_fdatawrite_inode(struct writeback_control *wbc,
|
||||
struct inode *inode);
|
||||
|
||||
/**
|
||||
* wbc_init_bio - writeback specific initializtion of bio
|
||||
@ -303,13 +286,6 @@ static inline void inode_detach_wb(struct inode *inode)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
__releases(&inode->i_lock)
|
||||
{
|
||||
spin_unlock(&inode->i_lock);
|
||||
}
|
||||
|
||||
static inline void wbc_attach_fdatawrite_inode(struct writeback_control *wbc,
|
||||
struct inode *inode)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user