Message ID | 5524526f.kgDXDACeZXa2du4P%akpm@linux-foundation.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff -puN fs/ocfs2/buffer_head_io.c~clear-the-rest-of-the-buffers-on-error fs/ocfs2/buffer_head_io.c --- a/fs/ocfs2/buffer_head_io.c~clear-the-rest-of-the-buffers-on-error +++ a/fs/ocfs2/buffer_head_io.c @@ -316,6 +316,12 @@ int ocfs2_read_blocks(struct ocfs2_cachi bh = bhs[i]; if (!(flags & OCFS2_BH_READAHEAD)) { + if (status) { + /* Clear the rest of the buffers on error */ + put_bh(bh); + bhs[i] = NULL; + continue; + } /* We know this can't have changed as we hold the * owner sem. Avoid doing any work on the bh if the * journal has it. */