diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2007-10-17 10:04:24 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2008-01-25 09:07:28 +0100 |
commit | b8e7cbb65bcc99630e123422c6829ce3c0fcdf14 (patch) | |
tree | a9f68259b90e9e65ea7f0369f448d580a8944f06 /fs/gfs2/log.c | |
parent | [GFS2] Split gfs2_writepage into three cases (diff) | |
download | linux-b8e7cbb65bcc99630e123422c6829ce3c0fcdf14.tar.xz linux-b8e7cbb65bcc99630e123422c6829ce3c0fcdf14.zip |
[GFS2] Add writepages for GFS2 jdata
This patch resolves a lock ordering issue where we had been getting
a transaction lock in the wrong order with respect to the page lock.
By using writepages rather than just writepage, it is then possible
to start a transaction before locking the page, and thus matching the
locking order elsewhere in the code.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/log.c')
-rw-r--r-- | fs/gfs2/log.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c index 70b404d2774b..1e1fe8def375 100644 --- a/fs/gfs2/log.c +++ b/fs/gfs2/log.c @@ -650,7 +650,7 @@ static void gfs2_ordered_write(struct gfs2_sbd *sdp) get_bh(bh); gfs2_log_unlock(sdp); lock_buffer(bh); - if (test_clear_buffer_dirty(bh)) { + if (buffer_mapped(bh) && test_clear_buffer_dirty(bh)) { bh->b_end_io = end_buffer_write_sync; submit_bh(WRITE, bh); } else { |