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

move iov iter forward by ourself

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.14.0
    • Labels:
      None
    • Severity:
      3
    • Rank (Obsolete):
      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

              • Assignee:
                wshilong Wang Shilong
                Reporter:
                wshilong Wang Shilong
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: