mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 12:52:30 +00:00
VFS: export sync_sb_inodes
This patch exports the 'sync_sb_inodes()' which is needed for UBIFS because it has to force write-back from time to time. Namely, the UBIFS budgeting subsystem forces write-back when its pessimistic callculations show that there is no free space on the media. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
ae8547b0a9
commit
4ee6afd344
@ -439,8 +439,8 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc)
|
|||||||
* on the writer throttling path, and we get decent balancing between many
|
* on the writer throttling path, and we get decent balancing between many
|
||||||
* throttled threads: we don't want them all piling up on inode_sync_wait.
|
* throttled threads: we don't want them all piling up on inode_sync_wait.
|
||||||
*/
|
*/
|
||||||
static void
|
void generic_sync_sb_inodes(struct super_block *sb,
|
||||||
sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc)
|
struct writeback_control *wbc)
|
||||||
{
|
{
|
||||||
const unsigned long start = jiffies; /* livelock avoidance */
|
const unsigned long start = jiffies; /* livelock avoidance */
|
||||||
|
|
||||||
@ -526,6 +526,13 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc)
|
|||||||
spin_unlock(&inode_lock);
|
spin_unlock(&inode_lock);
|
||||||
return; /* Leave any unwritten inodes on s_io */
|
return; /* Leave any unwritten inodes on s_io */
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(generic_sync_sb_inodes);
|
||||||
|
|
||||||
|
static void sync_sb_inodes(struct super_block *sb,
|
||||||
|
struct writeback_control *wbc)
|
||||||
|
{
|
||||||
|
generic_sync_sb_inodes(sb, wbc);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Start writeback of dirty pagecache data against all unlocked inodes.
|
* Start writeback of dirty pagecache data against all unlocked inodes.
|
||||||
|
@ -1729,6 +1729,8 @@ static inline void invalidate_remote_inode(struct inode *inode)
|
|||||||
extern int invalidate_inode_pages2(struct address_space *mapping);
|
extern int invalidate_inode_pages2(struct address_space *mapping);
|
||||||
extern int invalidate_inode_pages2_range(struct address_space *mapping,
|
extern int invalidate_inode_pages2_range(struct address_space *mapping,
|
||||||
pgoff_t start, pgoff_t end);
|
pgoff_t start, pgoff_t end);
|
||||||
|
extern void generic_sync_sb_inodes(struct super_block *sb,
|
||||||
|
struct writeback_control *wbc);
|
||||||
extern int write_inode_now(struct inode *, int);
|
extern int write_inode_now(struct inode *, int);
|
||||||
extern int filemap_fdatawrite(struct address_space *);
|
extern int filemap_fdatawrite(struct address_space *);
|
||||||
extern int filemap_flush(struct address_space *);
|
extern int filemap_flush(struct address_space *);
|
||||||
|
Loading…
Reference in New Issue
Block a user