projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fs: Assign bdi in super_block
[linux-2.6-block.git]
/
fs
/
sync.c
diff --git
a/fs/sync.c
b/fs/sync.c
index 192340930bb477f506eeee2eb132db06a1a6309f..c08467a5d7cb73d2988157c8c5fa4ab33ee2f48d 100644
(file)
--- a/
fs/sync.c
+++ b/
fs/sync.c
@@
-27,6
+27,13
@@
*/
static int __sync_filesystem(struct super_block *sb, int wait)
{
*/
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);
/* 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);
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);
__sync_filesystem(sb, wait);
up_read(&sb->s_umount);