fs: Assign bdi in super_block
We do this automatically in get_sb_bdev() from the set_bdev_super() callback. Filesystems that have their own private backing_dev_info must assign that in ->fill_super(). Note that ->s_bdi assignment is required for proper writeback! Acked-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@@ -27,6 +27,13 @@
|
||||
*/
|
||||
static int __sync_filesystem(struct super_block *sb, int wait)
|
||||
{
|
||||
/*
|
||||
* This should be safe, as we require bdi backing to actually
|
||||
* write out data in the first place
|
||||
*/
|
||||
if (!sb->s_bdi)
|
||||
return 0;
|
||||
|
||||
/* Avoid doing twice syncing and cache pruning for quota sync */
|
||||
if (!wait) {
|
||||
writeout_quota_sb(sb, -1);
|
||||
@@ -101,7 +108,7 @@ static void sync_filesystems(int wait)
|
||||
spin_unlock(&sb_lock);
|
||||
|
||||
down_read(&sb->s_umount);
|
||||
if (!(sb->s_flags & MS_RDONLY) && sb->s_root)
|
||||
if (!(sb->s_flags & MS_RDONLY) && sb->s_root && sb->s_bdi)
|
||||
__sync_filesystem(sb, wait);
|
||||
up_read(&sb->s_umount);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user