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

symlink migration should not create remote inodes

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • Lustre 2.14.0
    • Lustre 2.8.0, Lustre 2.13.0, Lustre 2.10.6
    • None
    • 9223372036854775807

      Migrating a symlink should not leave a remote agent inode on the original MDT in the extremely common case where there is not a hardlink to the symlink (apparently that is possible under POSIX and Linux allows it, who knew?):

      touch tt
      $ ln -s tt tt.link
      $ ln -n tt.link tt.nlink
      $ ls -li tt*
      408143 0 -rw-rw-r-- 1 mythtv  mythtv    0 Nov  6 13:02 tt
      408146 0 lrwxrwxrwx 2 mythtv  mythtv    2 Nov  6 13:02 tt.hlink -> tt
      408146 0 lrwxrwxrwx 2 mythtv  mythtv    2 Nov  6 13:02 tt.link -> tt
      

      Since we can never hold symlinks open and they can never be modified in place (except for renaming them) there is no danger to move the whole symlink to the new MDT during rename instead of leaving a stub agent inode on the original MDT, except in the rare case where the link count > 1.

            laisiyao Lai Siyao
            adilger Andreas Dilger
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: