> error = xlog_bread_noalign(log, ealign, sectbb, bp); > - if (error) > - break; > > - error = XFS_BUF_SET_PTR(bp, offset, bufblks); > + /* must reset buffer pointer even on error */ > + error2 = XFS_BUF_SET_PTR(bp, offset, bufblks); This seems to be incorrect both in the original and your version.