Comment # 8 on bug 1198669 from
(In reply to Linus Kardell from comment #4)
> Created attachment 858358 [details]
> debug.trace

It looks as though the I/O failure is coming from a spurious ENOENT in the read
path:
...
read(0,
"r\377\350X\3305j\2217\251\1\311\\\326(\307\7e\363'#\307\344!P\221\211h\34*\307\236"...,
512) = 512
write(1,
"r\377\350X\3305j\2217\251\1\311\\\326(\307\7e\363'#\307\344!P\221\211h\34*\307\236"...,
512) = 512
read(0,
"D\234J\321\256\313\262\332\32\350\352\236Rg\253\300p\254t\205\235=\205g\322M\n}\372\302\0I"...,
512) = 512
write(1,
"D\234J\321\256\313\262\332\32\350\352\236Rg\253\300p\254t\205\235=\205g\322M\n}\372\302\0I"...,
512) = 512
read(0, 0x5585832ea000, 512)            = -1 ENOENT (Filen eller katalogen
finns inte)

Wading through the ntfs3 file read code-path there appear to be a handful of
ENOENT return sites, with the (IMO) most probable being in the compression
specific attr_wof_frame_info() path:

#ifdef CONFIG_NTFS3_LZX_XPRESS
/* Read header of Xpress/LZX file to get info about frame. */
attr_wof_frame_info()

  attr_load_runs_range(type=ATTR_DATA, name=WOF_NAME)

    attr_load_runs_vcn()
    ->attr = ni_find_attr(ni, NULL, NULL, type, name, name_len, &vcn, NULL);
      if (!attr) { /* Is record corrupted?
        */ return -ENOENT;
      }

  ..
  ntfs_bio_pages()
    if (!run_lookup_entry(run, vcn, &lcn, &clen, &run_idx)) {
      err = -ENOENT;
      ...
    }
    if (!run_get_entry(run, ++run_idx, &vcn, &lcn, &clen) || vcn != vcn_next) {
      err = -ENOENT;

I'll work on preparing some ftrace instructions to profile some of the above
call sites.


You are receiving this mail because: