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

disabling statahead changes dentry revalidation behavior

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.10.0
    • Lustre 2.9.0
    • 3
    • 9223372036854775807

    Description

      In ll_revalidate_dentry() the test for LOOKUP_RCU in lookup_flags should probably go before the dentry_may_statahead() test:

      static int ll_revalidate_dentry(struct dentry *dentry,
                                      unsigned int lookup_flags)
      {
              struct inode *dir = dentry->d_parent->d_inode;
      
              /* If this is intermediate component path lookup and we were able to get
               * to this dentry, then its lock has not been revoked and the
               * path component is valid. */
              if (lookup_flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))
                      return 1;
      
              /* Symlink - always valid as long as the dentry was found */
      #ifdef HAVE_IOP_GET_LINK
              if (dentry->d_inode && dentry->d_inode->i_op->get_link)
      #else
              if (dentry->d_inode && dentry->d_inode->i_op->follow_link)
      #endif
                      return 1;
      
              /*
               * VFS warns us that this is the second go around and previous
               * operation failed (most likely open|creat), so this time
               * we better talk to the server via the lookup path by name,
               * not by fid.
               */
              if (lookup_flags & LOOKUP_REVAL)
                      return 0;
      
              if (!dentry_may_statahead(dir, dentry))
                      return 1;
      
      #ifndef HAVE_DCACHE_LOCK
              if (lookup_flags & LOOKUP_RCU)
                      return -ECHILD;
      #endif
      
              ll_statahead(dir, &dentry, dentry->d_inode == NULL);
              return 1;
      }
      

      Attachments

        Activity

          People

            sguminsx Steve Guminski (Inactive)
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: