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.

Attachment: 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

Attachment: signature.asc
Description: Digital signature

Reply via email to