X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fs%2Fsync.c;h=c08467a5d7cb73d2988157c8c5fa4ab33ee2f48d;hb=32a88aa1b6dfb901cec64e1898cac78d0f25028a;hp=192340930bb477f506eeee2eb132db06a1a6309f;hpb=c4a77a6c7dcff04a2abc7fe4b6b2ae605be41c5b;p=linux-2.6-block.git diff --git a/fs/sync.c b/fs/sync.c index 192340930bb4..c08467a5d7cb 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -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 @@ restart: 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);