[GFS2] Drop log lock on I/O error & tidy up
authorSteven Whitehouse <swhiteho@redhat.com>
Thu, 18 May 2006 18:10:52 +0000 (14:10 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 18 May 2006 18:10:52 +0000 (14:10 -0400)
This patch drops the log spinlock when an I/O error occurs
to avoid any possible problems in case of blocking or
recursion in the I/O error routine. It also has a few
cosmetic changes to tidy up various other files.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/meta_io.c
fs/gfs2/ops_inode.c
fs/gfs2/page.c
fs/gfs2/unlinked.c

index da49973..fe46d56 100644 (file)
@@ -226,8 +226,11 @@ void gfs2_ail1_start_one(struct gfs2_sbd *sdp, struct gfs2_ail *ai)
                        gfs2_assert(sdp, bd->bd_ail == ai);
 
                        if (!buffer_busy(bh)) {
-                               if (!buffer_uptodate(bh))
+                               if (!buffer_uptodate(bh)) {
+                                       gfs2_log_unlock(sdp);
                                        gfs2_io_error_bh(sdp, bh);
+                                       gfs2_log_lock(sdp);
+                               }
                                list_move(&bd->bd_ail_st_list,
                                          &ai->ai_ail2_list);
                                continue;
Simple merge
diff --cc fs/gfs2/page.c
Simple merge
Simple merge