On Mon, Aug 04, 2014 at 09:06:48AM -0400, Theodore Ts'o wrote: > Looking at your strace output, the error is coming from this write: > > lseek(3, 4096, SEEK_SET) = 4096 > write(3, > "\366\7\0\0\6\10\0\0\26\10\0\0\0\0\365\17\2\0\4\0\0\0\0\0\0\0\0\0\365\17o\361"..., > 8343552) = 8339456 > > 8343552 == 8148k (2037 4k blocks) > 8339456 == 8144k (2036 4k blocks) > > This corresponds to this request: > > Test_io: write_blk64(1, 2037) > > which is where we are updating the block group descriptors. For some > reason, the kernel is reporting that it only successfully written 2036 > blocks, instead of the 2037 blocks in the block group descriptors. > When writing to hard drives, the kernel should only report a short > write when there is an I/O error. Or at least, that's what the code > in lib/ext2fs/unix_io.c is assuming, and in general, it's always held > true.
As far as I understand the code - you have tried to do just that. And, as far as I can understand the result - it succeeded, and with resize2fs it does not. Could it be gcc optimisation related? Should I try different compile options? > Hmm. Ok, can you give me the outputs to the following two commands, > run as root: > > vgdisplay home_move > lvdisplay --maps /dev/home_move/home_move_tmp Attached test_lvmVGLV.log.bz2 > Also, can you try compiling and running the following program? Attached resize2fs_short_write_test.log BR, M.W.
test_lvmVGLV.log.bz2
Description: Binary data
Script started on Mon 04 Aug 2014 08:15:44 PM CEST hal-9002:~# /home/antymat/work/hobby/resize2fs_debug/resize2fs_short_write_test /dev/home_move/home_move_tmp successful write, finishing hal-9002:~# exit Script done on Mon 04 Aug 2014 08:19:02 PM CEST
signature.asc
Description: Digital signature

