Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-13846

move iov iter forward by ourself

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • Lustre 2.14.0
    • None
    • None
    • 3
    • 9223372036854775807

      Newer kernel will reward iov iter back to original
      position for direct IO, see following codes:

          
                  iov_iter_revert(from, write_len -iov_iter_count(from));--------->here
          out:
                  return written;
          }
          EXPORT_SYMBOL(generic_file_direct_write);
      

      This break assumptions from Lustre and caused problem
      when Lustre need split one IO to several io loop, considering
      4M block IO for 1 MiB stripe file, it will submit first 1MiB IO
      4 times and caused data corruptions finally.

      Since generic kernel varies from different kernel versions,
      we'd better fix this problem by move iov iter forward by
      Lustre itself.

            wshilong Wang Shilong (Inactive)
            wshilong Wang Shilong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: