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

negative dentries not cached after open, even with MDS_INODELOCK_UPDATE on parent

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.1.0
    • None
    • Linux 2.6.18-238.12.1.el5
      Lustre 2.0.65
    • 3
    • 4919

    Description

      Trying to open a non-existent file does not cause a negative dentry to be cached, even
      when parent ctime is more than ctime_age_limit (10) seconds old, or even when MDS_INODELOCK_UPDATE is held.

      To reproduce:

      /usr/lib64/lustre/tests/llmount.sh
      echo +dentry +inode +dlmtrace +vfstrace +rpctrace > /proc/sys/lnet/debug
      lctl clear
      mkdir /mnt/lustre/DDD
      sleep 20 # Twice ctime_age_limit.
      cat /mnt/lustre/DDD/XXX
      cat /mnt/lustre/DDD/XXX
      lctl dk negative-dentry-not-cached.log

      Then negative-dentry-not-cached.log shows an LDLM_ENQUEUE being sent for each open.

      Alternatively, stating a non-existent file will cache a negative dentry, but opens on other non-existent files in the same directory will not cache negative dentries, see stat-vs-open.txt.

      Attachments

        1. negative-dentry-not-cached.log
          80 kB
          John Hammond
        2. stat-vs-open.txt
          4 kB
          John Hammond

        Activity

          People

            rhenwood Richard Henwood (Inactive)
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: