diff options
Diffstat (limited to 'fs/nilfs2/segbuf.c')
-rw-r--r-- | fs/nilfs2/segbuf.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c index dc9a913784ab..2d8be51f90dc 100644 --- a/fs/nilfs2/segbuf.c +++ b/fs/nilfs2/segbuf.c | |||
@@ -345,8 +345,7 @@ static void nilfs_end_bio_write(struct bio *bio, int err) | |||
345 | 345 | ||
346 | if (err == -EOPNOTSUPP) { | 346 | if (err == -EOPNOTSUPP) { |
347 | set_bit(BIO_EOPNOTSUPP, &bio->bi_flags); | 347 | set_bit(BIO_EOPNOTSUPP, &bio->bi_flags); |
348 | bio_put(bio); | 348 | /* to be detected by nilfs_segbuf_submit_bio() */ |
349 | /* to be detected by submit_seg_bio() */ | ||
350 | } | 349 | } |
351 | 350 | ||
352 | if (!uptodate) | 351 | if (!uptodate) |
@@ -377,12 +376,12 @@ static int nilfs_segbuf_submit_bio(struct nilfs_segment_buffer *segbuf, | |||
377 | bio->bi_private = segbuf; | 376 | bio->bi_private = segbuf; |
378 | bio_get(bio); | 377 | bio_get(bio); |
379 | submit_bio(mode, bio); | 378 | submit_bio(mode, bio); |
379 | segbuf->sb_nbio++; | ||
380 | if (bio_flagged(bio, BIO_EOPNOTSUPP)) { | 380 | if (bio_flagged(bio, BIO_EOPNOTSUPP)) { |
381 | bio_put(bio); | 381 | bio_put(bio); |
382 | err = -EOPNOTSUPP; | 382 | err = -EOPNOTSUPP; |
383 | goto failed; | 383 | goto failed; |
384 | } | 384 | } |
385 | segbuf->sb_nbio++; | ||
386 | bio_put(bio); | 385 | bio_put(bio); |
387 | 386 | ||
388 | wi->bio = NULL; | 387 | wi->bio = NULL; |