diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-11-29 05:14:17 -0500 |
---|---|---|
committer | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-11-29 05:59:00 -0500 |
commit | 5f1586d0dd8f6eeecf6c0d35cbca6291afd6f1cc (patch) | |
tree | 1f38cd3b11e99b44712b8a075bf34c1cbfcc1ade /fs/nilfs2/segbuf.c | |
parent | 0935db747739782fc779eb58529610c12db88ea2 (diff) |
nilfs2: do not return io error for bio allocation failure
Previously, log writer had possibility to set an io error flag on
segments even in case of memory allocation failure.
This fixes the issue.
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Diffstat (limited to 'fs/nilfs2/segbuf.c')
-rw-r--r-- | fs/nilfs2/segbuf.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c index e6d9e37fa241..c71b689bdbce 100644 --- a/fs/nilfs2/segbuf.c +++ b/fs/nilfs2/segbuf.c | |||
@@ -374,7 +374,7 @@ int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf, | |||
374 | struct nilfs_write_info *wi) | 374 | struct nilfs_write_info *wi) |
375 | { | 375 | { |
376 | struct buffer_head *bh; | 376 | struct buffer_head *bh; |
377 | int res, rw = WRITE; | 377 | int res = 0, rw = WRITE; |
378 | 378 | ||
379 | list_for_each_entry(bh, &segbuf->sb_segsum_buffers, b_assoc_buffers) { | 379 | list_for_each_entry(bh, &segbuf->sb_segsum_buffers, b_assoc_buffers) { |
380 | res = nilfs_submit_bh(wi, bh, rw); | 380 | res = nilfs_submit_bh(wi, bh, rw); |
@@ -395,17 +395,10 @@ int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf, | |||
395 | */ | 395 | */ |
396 | rw |= (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_UNPLUG); | 396 | rw |= (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_UNPLUG); |
397 | res = nilfs_submit_seg_bio(wi, rw); | 397 | res = nilfs_submit_seg_bio(wi, rw); |
398 | if (unlikely(res)) | ||
399 | goto failed_bio; | ||
400 | } | 398 | } |
401 | 399 | ||
402 | res = 0; | ||
403 | out: | ||
404 | return res; | ||
405 | |||
406 | failed_bio: | 400 | failed_bio: |
407 | atomic_inc(&wi->err); | 401 | return res; |
408 | goto out; | ||
409 | } | 402 | } |
410 | 403 | ||
411 | /** | 404 | /** |