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

dentry duplication can break rename checks in VFS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      ll_splice_alias() ignores directory dentry unless it's disconnected:

      		if ((alias->d_flags & DCACHE_DISCONNECTED) &&
      		    S_ISDIR(inode->i_mode))
      			/* LASSERT(last_discon == NULL); LU-405, bz 20055 */
      			discon_alias = alias;
      

      this can lead to duplicates while VFS (during rename) relies all checks on this hierarchy:

      00000080:00200000:1.0:1707475489.059038:0:16032:0:(namei.c:657:ll_splice_alias()) new dentry 0000000032b35fcf 15 for 000000000d62ff8a
      00000080:00200000:1.0:1707475489.059039:0:16032:0:(namei.c:87:check_inode_dentry()) inode 000000000d62ff8a
      00000080:00200000:1.0:1707475489.059040:0:16032:0:(namei.c:91:check_inode_dentry()) dentry 0000000032b35fcf 15, flags 20000e invalid
      00000080:00200000:1.0:1707475489.059040:0:16032:0:(namei.c:91:check_inode_dentry()) dentry 00000000b213e41e 15, flags 28000e 
      00000080:00200000:1.0:1707475489.059041:0:16032:0:(namei.c:91:check_inode_dentry()) dentry 0000000094468250 15, flags 28000e 
      

      Attachments

        Activity

          People

            wc-triage WC Triage
            bzzz Alex Zhuravlev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: