X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fbuffer.c;h=3b6d701073e7f09a311f10297a58d8c06e715df5;hb=8454aeef6fea944ced757ff8e761b59eb3ee960f;hp=71649ef9b6586696c695e2d80c000ceedaa51282;hpb=0a7d5f8ce960e74fa22986bda4af488539796e49;p=~andy%2Flinux diff --git a/fs/buffer.c b/fs/buffer.c index 71649ef9b65..3b6d701073e 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2987,6 +2987,7 @@ int try_to_free_buffers(struct page *page) spin_lock(&mapping->private_lock); ret = drop_buffers(page, &buffers_to_free); + spin_unlock(&mapping->private_lock); if (ret) { /* * If the filesystem writes its buffers by hand (eg ext3) @@ -2998,7 +2999,6 @@ int try_to_free_buffers(struct page *page) */ clear_page_dirty(page); } - spin_unlock(&mapping->private_lock); out: if (buffers_to_free) { struct buffer_head *bh = buffers_to_free;