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

move iov iter forward by ourself

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: