GFS2: Fix up REQ flags
Christoph has split up REQ_PRIO from REQ_META. That means that we can drop REQ_PRIO from places where is it not needed. I'm not at all sure that the combination WRITE_FLUSH_FUA | REQ_PRIO makes any kind of sense, anyway. In addition, I've added REQ_META to one place in the code where it was missing. REQ_PRIO has been left for read/writes triggered by glock acquisition and writeback only. We can adjust it again if required, but these are the most important points from a performance perspective. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Cc: Christoph Hellwig <hch@infradead.org>
This commit is contained in:
Родитель
1ea6b8f489
Коммит
20ed0535d3
|
@ -626,7 +626,7 @@ static void log_write_header(struct gfs2_sbd *sdp, u32 flags, int pull)
|
||||||
if (test_bit(SDF_NOBARRIERS, &sdp->sd_flags))
|
if (test_bit(SDF_NOBARRIERS, &sdp->sd_flags))
|
||||||
submit_bh(WRITE_SYNC | REQ_META | REQ_PRIO, bh);
|
submit_bh(WRITE_SYNC | REQ_META | REQ_PRIO, bh);
|
||||||
else
|
else
|
||||||
submit_bh(WRITE_FLUSH_FUA | REQ_META | REQ_PRIO, bh);
|
submit_bh(WRITE_FLUSH_FUA | REQ_META, bh);
|
||||||
wait_on_buffer(bh);
|
wait_on_buffer(bh);
|
||||||
|
|
||||||
if (!buffer_uptodate(bh))
|
if (!buffer_uptodate(bh))
|
||||||
|
|
|
@ -435,7 +435,7 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen)
|
||||||
if (buffer_uptodate(first_bh))
|
if (buffer_uptodate(first_bh))
|
||||||
goto out;
|
goto out;
|
||||||
if (!buffer_locked(first_bh))
|
if (!buffer_locked(first_bh))
|
||||||
ll_rw_block(READ_SYNC | REQ_META | REQ_PRIO, 1, &first_bh);
|
ll_rw_block(READ_SYNC | REQ_META, 1, &first_bh);
|
||||||
|
|
||||||
dblock++;
|
dblock++;
|
||||||
extlen--;
|
extlen--;
|
||||||
|
@ -444,7 +444,7 @@ struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen)
|
||||||
bh = gfs2_getbuf(gl, dblock, CREATE);
|
bh = gfs2_getbuf(gl, dblock, CREATE);
|
||||||
|
|
||||||
if (!buffer_uptodate(bh) && !buffer_locked(bh))
|
if (!buffer_uptodate(bh) && !buffer_locked(bh))
|
||||||
ll_rw_block(READA, 1, &bh);
|
ll_rw_block(READA | REQ_META, 1, &bh);
|
||||||
brelse(bh);
|
brelse(bh);
|
||||||
dblock++;
|
dblock++;
|
||||||
extlen--;
|
extlen--;
|
||||||
|
|
|
@ -224,7 +224,7 @@ static int gfs2_read_super(struct gfs2_sbd *sdp, sector_t sector, int silent)
|
||||||
|
|
||||||
bio->bi_end_io = end_bio_io_page;
|
bio->bi_end_io = end_bio_io_page;
|
||||||
bio->bi_private = page;
|
bio->bi_private = page;
|
||||||
submit_bio(READ_SYNC | REQ_META | REQ_PRIO, bio);
|
submit_bio(READ_SYNC | REQ_META, bio);
|
||||||
wait_on_page_locked(page);
|
wait_on_page_locked(page);
|
||||||
bio_put(bio);
|
bio_put(bio);
|
||||||
if (!PageUptodate(page)) {
|
if (!PageUptodate(page)) {
|
||||||
|
|
|
@ -712,7 +712,7 @@ get_a_page:
|
||||||
set_buffer_uptodate(bh);
|
set_buffer_uptodate(bh);
|
||||||
|
|
||||||
if (!buffer_uptodate(bh)) {
|
if (!buffer_uptodate(bh)) {
|
||||||
ll_rw_block(READ | REQ_META | REQ_PRIO, 1, &bh);
|
ll_rw_block(READ | REQ_META, 1, &bh);
|
||||||
wait_on_buffer(bh);
|
wait_on_buffer(bh);
|
||||||
if (!buffer_uptodate(bh))
|
if (!buffer_uptodate(bh))
|
||||||
goto unlock_out;
|
goto unlock_out;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче