Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.6.0
    • Lustre 2.6.0, Lustre 2.4.3
    • None
    • 3
    • 13538

    Description

      [4/13/14, 3:46:55 AM] Alex Zhuravlev: mdc_read_page() enqueues a lock with IT_READDIR, but then in mdc_get_rpc_lock():

      static inline void mdc_get_rpc_lock(struct mdc_rpc_lock *lck,
      				    struct lookup_intent *it)
      {
      	ENTRY;
      
      	if (it != NULL && (it->it_op == IT_GETATTR || it->it_op == IT_LOOKUP ||
      			   it->it_op == IT_LAYOUT))
      		return;
      

      [4/13/14, 3:47:30 AM] Alex Zhuravlev: so, enqueue for readdir is serialized with open/reint ?

      Attachments

        Issue Links

          Activity

            [LU-4902] Do not require rpc_lock for readdir
            adilger Andreas Dilger made changes -
            Description Original: [4/13/14, 3:46:55 AM] Alex Zhuravlev: mdc_read_page() enqueues a lock with IT_READDIR, but then in mdc_get_rpc_lock():
            [4/13/14, 3:46:56 AM] Alex Zhuravlev: static inline void mdc_get_rpc_lock(struct mdc_rpc_lock *lck,
            struct lookup_intent *it)
            {
            ENTRY;

            if (it != NULL && (it->it_op == IT_GETATTR || it->it_op == IT_LOOKUP ||
            it->it_op == IT_LAYOUT))
            return;
            [4/13/14, 3:47:30 AM] Alex Zhuravlev: so, enqueue for readdir is serialized with open/reint ?
            New: [4/13/14, 3:46:55 AM] Alex Zhuravlev: mdc_read_page() enqueues a lock with IT_READDIR, but then in mdc_get_rpc_lock():
            {code}
            static inline void mdc_get_rpc_lock(struct mdc_rpc_lock *lck,
            struct lookup_intent *it)
            {
            ENTRY;

            if (it != NULL && (it->it_op == IT_GETATTR || it->it_op == IT_LOOKUP ||
            it->it_op == IT_LAYOUT))
            return;
            {code}
            [4/13/14, 3:47:30 AM] Alex Zhuravlev: so, enqueue for readdir is serialized with open/reint ?
            adilger Andreas Dilger made changes -
            Labels Original: easy
            adilger Andreas Dilger made changes -
            Fix Version/s New: Lustre 2.6.0 [ 10595 ]
            Fix Version/s Original: Lustre 2.7.0 [ 10631 ]
            Resolution New: Fixed [ 1 ]
            Status Original: Open [ 1 ] New: Resolved [ 5 ]

            This fix was landed as part of http://review.whamcloud.com/10622

            adilger Andreas Dilger added a comment - This fix was landed as part of http://review.whamcloud.com/10622
            di.wang Di Wang (Inactive) added a comment - - edited

            The fix is included in http://review.whamcloud.com/10622 for LU-4906.

            di.wang Di Wang (Inactive) added a comment - - edited The fix is included in http://review.whamcloud.com/10622 for LU-4906 .
            di.wang Di Wang (Inactive) made changes -
            Assignee Original: WC Triage [ wc-triage ] New: Di Wang [ di.wang ]
            adilger Andreas Dilger made changes -
            Labels New: easy
            adilger Andreas Dilger made changes -
            Priority Original: Minor [ 4 ] New: Major [ 3 ]
            adilger Andreas Dilger made changes -
            Fix Version/s New: Lustre 2.7.0 [ 10631 ]
            Fix Version/s Original: Lustre 2.6.0 [ 10595 ]
            adilger Andreas Dilger made changes -
            Fix Version/s New: Lustre 2.6.0 [ 10595 ]

            People

              di.wang Di Wang (Inactive)
              di.wang Di Wang (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: