Skip to content

Commit

Permalink
async: Don't call async_synchronize_full_special() while holding sb_lock
Browse files Browse the repository at this point in the history
sync_filesystems() shouldn't be calling async_synchronize_full_special
while holding a spinlock.  The second while loop in that function is the
right place for this anyway.

Signed-off-by: Dave Kleikamp <[email protected]>
Cc: Arjan van de Ven <[email protected]>
Reported-by: Grissiom <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Dave Kleikamp authored and torvalds committed Jan 8, 2009
1 parent 9e42d0c commit 96777fe
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,6 @@ void sync_filesystems(int wait)
if (sb->s_flags & MS_RDONLY)
continue;
sb->s_need_sync_fs = 1;
async_synchronize_full_special(&sb->s_async_list);
}

restart:
Expand All @@ -471,6 +470,7 @@ void sync_filesystems(int wait)
sb->s_count++;
spin_unlock(&sb_lock);
down_read(&sb->s_umount);
async_synchronize_full_special(&sb->s_async_list);
if (sb->s_root && (wait || sb->s_dirt))
sb->s_op->sync_fs(sb, wait);
up_read(&sb->s_umount);
Expand Down

0 comments on commit 96777fe

Please sign in to comment.