Whamcloud - gitweb
LU-18420 misc: Use enum mds_ibits_locks instead of __u64 (part 2) 53/56953/17
authorArshad Hussain <arshad.hussain@aeoncomputing.com>
Mon, 11 Nov 2024 09:44:10 +0000 (04:44 -0500)
committerOleg Drokin <green@whamcloud.com>
Mon, 31 Mar 2025 05:55:55 +0000 (05:55 +0000)
This patch is part 2 that uses enum mds_ibits_locks
instead of generic __u64.

Test-Parameters: testlist=runtests serverversion=2.15
Test-Parameters: testlist=runtests clientversion=2.15
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I77ddc7787c61ce4ef6b9d2041490446d20ce691c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56953
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
29 files changed:
lustre/include/lustre_dlm.h
lustre/include/lustre_intent.h
lustre/include/obd.h
lustre/include/obd_class.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/ldlm/ldlm_inodebits.c
lustre/ldlm/ldlm_internal.h
lustre/ldlm/ldlm_lock.c
lustre/ldlm/ldlm_lockd.c
lustre/ldlm/ldlm_request.c
lustre/lfsck/lfsck_internal.h
lustre/lfsck/lfsck_lib.c
lustre/llite/dcache.c
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/namei.c
lustre/llite/statahead.c
lustre/lmv/lmv_obd.c
lustre/mdc/mdc_internal.h
lustre/mdc/mdc_locks.c
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_io.c
lustre/mdt/mdt_open.c
lustre/mdt/mdt_reint.c
lustre/mdt/mdt_xattr.c
lustre/obdclass/lprocfs_status.c
lustre/ptlrpc/pack_generic.c
lustre/target/tgt_handler.c

index 8cecf15..6a5efa6 100644 (file)
@@ -1291,7 +1291,7 @@ struct ldlm_enqueue_info {
        ldlm_created_callback ei_cb_created;    /** lock created callback */
        void            *ei_cbdata;     /** Data to be passed into callbacks. */
        void            *ei_namespace;  /** lock namespace **/
-       u64             ei_inodebits;   /** lock inode bits **/
+       enum mds_ibits_locks ei_inodebits;      /** lock inode bits **/
        unsigned int    ei_enq_slave:1; /** whether enqueue slave stripes */
        unsigned int    ei_req_slot:1;  /** whether acquire rpc slot */
        unsigned int    ei_mod_slot:1;  /** whether acquire mod rpc slot */
@@ -1369,7 +1369,7 @@ void _ldlm_lock_debug(struct ldlm_lock *lock,
 /** Non-rate-limited lock printing function for debugging purposes. */
 #define LDLM_DEBUG(lock, fmt, a...)   do {                                  \
        if (likely(lock != NULL)) {                                         \
-               LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_DLMTRACE, NULL);      \
+               LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_DLMTRACE, NULL);      \
                ldlm_lock_debug(&msgdata, D_DLMTRACE, NULL, lock,           \
                                "### " fmt, ##a);                           \
        } else {                                                            \
@@ -1423,7 +1423,7 @@ typedef int (*ldlm_reprocessing_policy)(struct ldlm_resource *res,
                                        struct list_head *queue,
                                        struct list_head *work_list,
                                        enum ldlm_process_intention intention,
-                                       __u64 hint);
+                                       enum mds_ibits_locks hint);
 
 /**
  * Return values for lock iterators.
@@ -1648,10 +1648,10 @@ static inline enum ldlm_mode ldlm_lock_match(struct ldlm_namespace *ns,
 struct ldlm_lock *search_itree(struct ldlm_resource *res,
                               struct ldlm_match_data *data);
 enum ldlm_mode ldlm_revalidate_lock_handle(const struct lustre_handle *lockh,
-                                          __u64 *bits);
+                                          enum mds_ibits_locks *bits);
 void ldlm_lock_mode_downgrade(struct ldlm_lock *lock, enum ldlm_mode new_mode);
 void ldlm_lock_cancel(struct ldlm_lock *lock);
-void ldlm_reprocess_all(struct ldlm_resource *res, __u64 hint);
+void ldlm_reprocess_all(struct ldlm_resource *res, enum mds_ibits_locks hint);
 void ldlm_reprocess_recovery_done(struct ldlm_namespace *ns);
 void ldlm_lock_dump_handle(int level, const struct lustre_handle *lockh);
 void ldlm_unlink_lock_skiplist(struct ldlm_lock *req);
@@ -1813,7 +1813,7 @@ int ldlm_cli_cancel_list(struct list_head *head, int count,
                         struct ptlrpc_request *req,
                         enum ldlm_cancel_flags flags);
 
-int ldlm_inodebits_drop(struct ldlm_lock *lock, __u64 to_drop);
+int ldlm_inodebits_drop(struct ldlm_lock *lock, enum mds_ibits_locks to_drop);
 int ldlm_cli_inodebits_convert(struct ldlm_lock *lock,
                               enum ldlm_cancel_flags cancel_flags);
 
@@ -1900,7 +1900,5 @@ static inline int ldlm_extent_contain(const struct ldlm_extent *ex1,
        return ex1->start <= ex2->start && ex1->end >= ex2->end;
 }
 
-int ldlm_inodebits_drop(struct ldlm_lock *lock,  __u64 to_drop);
-
 #endif
 /** @} LDLM */
index 476b150..a7e9721 100644 (file)
@@ -23,7 +23,7 @@ struct lookup_intent {
        int                      it_disposition;
        int                      it_status;
        __u64                    it_lock_handle;
-       __u64                    it_lock_bits;
+       enum mds_ibits_locks     it_lock_bits;
        int                      it_lock_mode;
        int                      it_remote_lock_mode;
        __u64                    it_remote_lock_handle;
index 9d9c9ca..5a82ce2 100644 (file)
@@ -1315,7 +1315,7 @@ struct md_ops {
 
        int (*m_revalidate_lock)(struct obd_export *exp,
                                 struct lookup_intent *it, struct lu_fid *fid,
-                                __u64 *bits);
+                                enum mds_ibits_locks *bits);
 
        int (*m_file_resync)(struct obd_export *exp,
                             struct md_op_data *op_data);
@@ -1351,7 +1351,7 @@ struct md_ops {
 
        int (*m_set_lock_data)(struct obd_export *exp,
                               const struct lustre_handle *lockh, void *data,
-                              __u64 *bits);
+                              enum mds_ibits_locks *bits);
 
        enum ldlm_mode (*m_lock_match)(struct obd_export *exp, __u64 flags,
                                       const struct lu_fid *fid,
index b1aa244..1d8024a 100644 (file)
@@ -1792,7 +1792,7 @@ static inline int md_clear_open_replay_data(struct obd_export *exp,
 
 static inline int md_set_lock_data(struct obd_export *exp,
                                   const struct lustre_handle *lockh,
-                                  void *data, __u64 *bits)
+                                  void *data, enum mds_ibits_locks *bits)
 {
        int rc;
 
@@ -1875,7 +1875,8 @@ static inline int md_intent_getattr_async(struct obd_export *exp,
 
 static inline int md_revalidate_lock(struct obd_export *exp,
                                     struct lookup_intent *it,
-                                    struct lu_fid *fid, __u64 *bits)
+                                    struct lu_fid *fid,
+                                    enum mds_ibits_locks *bits)
 {
        int rc;
 
index abe7932..e34cfdd 100644 (file)
@@ -965,6 +965,43 @@ struct ptlrpc_body_v2 {
                                 OBD_CONNECT_ATTRFID |  \
                                 OBD_CONNECT_FULL20)
 
+/* INODE LOCK PARTS */
+enum mds_ibits_locks {
+       MDS_INODELOCK_NONE      = 0x000000000, /* no lock bits are used */
+       MDS_INODELOCK_LOOKUP    = 0x000000001, /* For namespace, dentry etc Was
+                                               * used to protect permission
+                                               * (mode, owner, group, etc)
+                                               * before 2.4.
+                                               */
+       MDS_INODELOCK_UPDATE    = 0x000000002, /* size, links, timestamps */
+       MDS_INODELOCK_OPEN      = 0x000000004, /* For opened files */
+       MDS_INODELOCK_LAYOUT    = 0x000000008, /* for layout */
+
+       /* The PERM bit is added in 2.4, and is used to protect permission
+        * (mode, owner, group, ACL, etc.) separate from LOOKUP lock.
+        * For remote directories (in DNE) these locks will be granted by
+        * different MDTs (different LDLM namespace).
+        *
+        * For local directory, the MDT always grants UPDATE|PERM together.
+        * For remote directory, master MDT (where remote directory is) grants
+        * UPDATE|PERM, and remote MDT (where name entry is) grants LOOKUP_LOCK.
+        */
+       MDS_INODELOCK_PERM      = 0x000000010,
+       MDS_INODELOCK_XATTR     = 0x000000020, /* non-permission extended attrs */
+       MDS_INODELOCK_DOM       = 0x000000040, /* Data for Data-on-MDT files */
+       /* Do not forget to increase MDS_INODELOCK_NUMBITS when adding bits */
+
+       /* Reserve to make 64bit, not used anywhere, therefore
+        * MDS_INODELOCK_NUMBITS is not increased for this member
+        */
+       MDS_INODELOCK_64BIT     = 0x100000000,
+};
+#define MDS_INODELOCK_NUMBITS 7
+/* This FULL lock is useful to take on unlink sort of operations */
+#define MDS_INODELOCK_FULL ((1 << MDS_INODELOCK_NUMBITS) - 1)
+/* DOM lock shouldn't be canceled early, use this macro for ELC */
+#define MDS_INODELOCK_ELC (MDS_INODELOCK_FULL & ~MDS_INODELOCK_DOM)
+
 /* This structure is used for both request and reply.
  *
  * If we eventually have separate connect data for different types, which we
@@ -976,7 +1013,7 @@ struct obd_connect_data {
        __u32 ocd_grant;         /* initial cache grant amount (bytes) */
        __u32 ocd_index;         /* LOV index to connect to */
        __u32 ocd_brw_size;      /* Maximum BRW size in bytes */
-       __u64 ocd_ibits_known;   /* inode bits this client understands */
+       enum mds_ibits_locks ocd_ibits_known; /* inode bits this client understands */
        __u8  ocd_grant_blkbits; /* log2 of the backend filesystem blocksize */
        __u8  ocd_grant_inobits; /* log2 of the per-inode space consumption */
        __u16 ocd_grant_tax_kb;  /* extent insertion overhead, in 1K blocks */
@@ -1801,36 +1838,6 @@ enum mds_reint_op {
 #define DISP_OPEN_STRIPE     0x08000000
 #define DISP_OPEN_DENY      0x10000000
 
-/* INODE LOCK PARTS */
-enum mds_ibits_locks {
-       MDS_INODELOCK_LOOKUP    = 0x000001, /* For namespace, dentry etc.  Was
-                                            * used to protect permission (mode,
-                                            * owner, group, etc) before 2.4.
-                                            */
-       MDS_INODELOCK_UPDATE    = 0x000002, /* size, links, timestamps */
-       MDS_INODELOCK_OPEN      = 0x000004, /* For opened files */
-       MDS_INODELOCK_LAYOUT    = 0x000008, /* for layout */
-
-       /* The PERM bit is added in 2.4, and is used to protect permission
-        * (mode, owner, group, ACL, etc.) separate from LOOKUP lock.
-        * For remote directories (in DNE) these locks will be granted by
-        * different MDTs (different LDLM namespace).
-        *
-        * For local directory, the MDT always grants UPDATE|PERM together.
-        * For remote directory, master MDT (where remote directory is) grants
-        * UPDATE|PERM, and remote MDT (where name entry is) grants LOOKUP_LOCK.
-        */
-       MDS_INODELOCK_PERM      = 0x000010,
-       MDS_INODELOCK_XATTR     = 0x000020, /* non-permission extended attrs */
-       MDS_INODELOCK_DOM       = 0x000040, /* Data for Data-on-MDT files */
-       /* Do not forget to increase MDS_INODELOCK_NUMBITS when adding bits */
-};
-#define MDS_INODELOCK_NUMBITS 7
-/* This FULL lock is useful to take on unlink sort of operations */
-#define MDS_INODELOCK_FULL ((1 << MDS_INODELOCK_NUMBITS) - 1)
-/* DOM lock shouldn't be canceled early, use this macro for ELC */
-#define MDS_INODELOCK_ELC (MDS_INODELOCK_FULL & ~MDS_INODELOCK_DOM)
-
 /* NOTE: until Lustre 1.8.7/2.1.1 the fid_ver() was packed into name[2],
  * but was moved into name[1] along with the OID to avoid consuming the
  * name[2,3] fields that need to be used for the quota id (also a FID).
@@ -2558,10 +2565,10 @@ static inline bool ldlm_extent_equal(const struct ldlm_extent *ex1,
 }
 
 struct ldlm_inodebits {
-       __u64 bits;
+       enum mds_ibits_locks bits;
        union {
-               __u64 try_bits; /* optional bits to try */
-               __u64 cancel_bits; /* for lock convert */
+               enum mds_ibits_locks try_bits; /* optional bits to try */
+               enum mds_ibits_locks cancel_bits; /* for lock convert */
        };
        __u64 li_gid;
        __u32 li_padding;
index 6ae1dd9..b8c04a5 100644 (file)
@@ -48,7 +48,7 @@ int ldlm_reprocess_inodebits_queue(struct ldlm_resource *res,
                                   struct list_head *queue,
                                   struct list_head *work_list,
                                   enum ldlm_process_intention intention,
-                                  __u64 mask)
+                                  enum mds_ibits_locks mask)
 {
        __u64 flags;
        int rc = LDLM_ITER_CONTINUE;
@@ -73,7 +73,7 @@ restart:
        CDEBUG(D_DLMTRACE, "--- Reprocess resource "DLDLMRES" (%p)\n",
               PLDLMRES(res), res);
        if (mask)
-               CDEBUG(D_DLMTRACE, "Hint %llx\n", mask);
+               CDEBUG(D_DLMTRACE, "Hint %lx\n", mask);
        else
                mask = MDS_INODELOCK_FULL;
 
@@ -112,7 +112,7 @@ restart:
 
                lock_res(res);
                if (rc == -ERESTART) {
-                       mask = 0;
+                       mask = MDS_INODELOCK_NONE;
                        GOTO(restart, rc);
                }
        }
@@ -162,8 +162,9 @@ ldlm_inodebits_compat_queue(struct list_head *queue, struct ldlm_lock *req,
        enum ldlm_mode req_mode = req->l_req_mode;
        struct list_head *tmp;
        struct ldlm_lock *lock;
-       __u64 req_bits = req->l_policy_data.l_inodebits.bits;
-       __u64 *try_bits = &req->l_policy_data.l_inodebits.try_bits;
+       enum mds_ibits_locks req_bits = req->l_policy_data.l_inodebits.bits;
+       enum mds_ibits_locks *try_bits =
+                               &req->l_policy_data.l_inodebits.try_bits;
        int compat = 1;
 
        ENTRY;
@@ -175,7 +176,7 @@ ldlm_inodebits_compat_queue(struct list_head *queue, struct ldlm_lock *req,
         * Meanwhile that can be true if there were just try_bits and all
         * are failed, so just exit gracefully and let the caller to care.
         */
-       if ((req_bits | *try_bits) == 0)
+       if ((req_bits | *try_bits) == MDS_INODELOCK_NONE)
                RETURN(0);
 
        /* Group lock could be only DOM */
@@ -260,7 +261,7 @@ ldlm_inodebits_compat_queue(struct list_head *queue, struct ldlm_lock *req,
                        *try_bits &= ~(lock->l_policy_data.l_inodebits.bits |
                                lock->l_policy_data.l_inodebits.try_bits);
 
-                       if ((req_bits | *try_bits) == 0)
+                       if ((req_bits | *try_bits) == MDS_INODELOCK_NONE)
                                RETURN(0);
 
                        /* The new lock ibits is more preferable than try_bits
@@ -381,10 +382,12 @@ int ldlm_process_inodebits_lock(struct ldlm_lock *lock, __u64 *ldlm_flags,
                        RETURN(LDLM_ITER_STOP);
 
                /* grant also try_bits if any */
-               if (lock->l_policy_data.l_inodebits.try_bits != 0) {
+               if (lock->l_policy_data.l_inodebits.try_bits !=
+                                                   MDS_INODELOCK_NONE) {
                        lock->l_policy_data.l_inodebits.bits |=
                                lock->l_policy_data.l_inodebits.try_bits;
-                       lock->l_policy_data.l_inodebits.try_bits = 0;
+                       lock->l_policy_data.l_inodebits.try_bits =
+                               MDS_INODELOCK_NONE;
                        *ldlm_flags |= LDLM_FL_LOCK_CHANGED;
                }
                ldlm_resource_unlink_lock(lock);
@@ -419,10 +422,12 @@ int ldlm_process_inodebits_lock(struct ldlm_lock *lock, __u64 *ldlm_flags,
                }
        } else {
                /* grant also all remaining try_bits */
-               if (lock->l_policy_data.l_inodebits.try_bits != 0) {
+               if (lock->l_policy_data.l_inodebits.try_bits !=
+                                                   MDS_INODELOCK_NONE) {
                        lock->l_policy_data.l_inodebits.bits |=
                                lock->l_policy_data.l_inodebits.try_bits;
-                       lock->l_policy_data.l_inodebits.try_bits = 0;
+                       lock->l_policy_data.l_inodebits.try_bits =
+                               MDS_INODELOCK_NONE;
                        *ldlm_flags |= LDLM_FL_LOCK_CHANGED;
                }
                LASSERT(lock->l_policy_data.l_inodebits.bits);
@@ -467,15 +472,16 @@ void ldlm_ibits_policy_local_to_wire(const union ldlm_policy_data *lpolicy,
  * Such lock conversion is used to keep lock with non-blocking bits instead of
  * cancelling it, introduced for better support of DoM files.
  */
-int ldlm_inodebits_drop(struct ldlm_lock *lock, __u64 to_drop)
+int ldlm_inodebits_drop(struct ldlm_lock *lock, enum mds_ibits_locks to_drop)
 {
        ENTRY;
 
        check_res_locked(lock->l_resource);
 
        /* Just return if there are no conflicting bits */
-       if ((lock->l_policy_data.l_inodebits.bits & to_drop) == 0) {
-               LDLM_WARN(lock, "try to drop unset bits %#llx/%#llx",
+       if ((lock->l_policy_data.l_inodebits.bits & to_drop) ==
+                       MDS_INODELOCK_NONE) {
+               LDLM_WARN(lock, "try to drop unset bits %#lx/%#lx",
                          lock->l_policy_data.l_inodebits.bits, to_drop);
                /* nothing to do */
                RETURN(0);
@@ -497,7 +503,7 @@ int ldlm_cli_inodebits_convert(struct ldlm_lock *lock,
 {
        struct ldlm_namespace *ns = ldlm_lock_to_ns(lock);
        struct ldlm_lock_desc ld = { { 0 } };
-       __u64 drop_bits, new_bits;
+       enum mds_ibits_locks drop_bits, new_bits;
        __u32 flags = 0;
        int rc;
 
@@ -528,7 +534,7 @@ int ldlm_cli_inodebits_convert(struct ldlm_lock *lock,
 
        drop_bits = lock->l_policy_data.l_inodebits.cancel_bits;
        /* no cancel bits - means that caller needs full cancel */
-       if (drop_bits == 0)
+       if (drop_bits == MDS_INODELOCK_NONE)
                RETURN(-EINVAL);
 
        new_bits = lock->l_policy_data.l_inodebits.bits & ~drop_bits;
@@ -590,7 +596,7 @@ int ldlm_cli_inodebits_convert(struct ldlm_lock *lock,
         * it will result in another cycle of ldlm_cli_inodebits_convert().
         */
 full_cancel:
-       lock->l_policy_data.l_inodebits.cancel_bits = 0;
+       lock->l_policy_data.l_inodebits.cancel_bits = MDS_INODELOCK_NONE;
 clear_converting:
        ldlm_clear_converting(lock);
        RETURN(rc);
index 811475d..1fddcb6 100644 (file)
@@ -127,7 +127,8 @@ void ldlm_add_ast_work_item(struct ldlm_lock *lock, struct ldlm_lock *new,
 #ifdef HAVE_SERVER_SUPPORT
 int ldlm_reprocess_queue(struct ldlm_resource *res, struct list_head *queue,
                         struct list_head *work_list,
-                        enum ldlm_process_intention intention, __u64 hint);
+                        enum ldlm_process_intention intention,
+                        enum mds_ibits_locks hint);
 int ldlm_handle_conflict_lock(struct ldlm_lock *lock, __u64 *flags,
                              struct list_head *rpc_list);
 void ldlm_discard_bl_list(struct list_head *bl_list);
@@ -178,7 +179,7 @@ int ldlm_reprocess_inodebits_queue(struct ldlm_resource *res,
                                   struct list_head *queue,
                                   struct list_head *work_list,
                                   enum ldlm_process_intention intention,
-                                  __u64 hint);
+                                  enum mds_ibits_locks hint);
 /* ldlm_extent.c */
 int ldlm_process_extent_lock(struct ldlm_lock *lock, __u64 *flags,
                             enum ldlm_process_intention intention,
@@ -349,7 +350,8 @@ static inline bool is_lock_converted(struct ldlm_lock *lock)
        bool ret = 0;
 
        lock_res_and_lock(lock);
-       ret = (lock->l_policy_data.l_inodebits.cancel_bits == 0);
+       ret = (lock->l_policy_data.l_inodebits.cancel_bits ==
+              MDS_INODELOCK_NONE);
        unlock_res_and_lock(lock);
 
        return ret;
index d82015a..9c0575d 100644 (file)
@@ -1546,7 +1546,7 @@ out_fail_match:
 EXPORT_SYMBOL(ldlm_lock_match_with_skip);
 
 enum ldlm_mode ldlm_revalidate_lock_handle(const struct lustre_handle *lockh,
-                                          __u64 *bits)
+                                          enum mds_ibits_locks *bits)
 {
        struct ldlm_lock *lock;
        enum ldlm_mode mode = 0;
@@ -1958,7 +1958,8 @@ out:
  */
 int ldlm_reprocess_queue(struct ldlm_resource *res, struct list_head *queue,
                         struct list_head *work_list,
-                        enum ldlm_process_intention intention, __u64 hint)
+                        enum ldlm_process_intention intention,
+                        enum mds_ibits_locks hint)
 {
        struct list_head *tmp, *pos;
        ldlm_processing_policy policy;
@@ -2382,7 +2383,7 @@ out:
  */
 static void __ldlm_reprocess_all(struct ldlm_resource *res,
                                 enum ldlm_process_intention intention,
-                                __u64 hint)
+                                enum mds_ibits_locks hint)
 {
        LIST_HEAD(rpc_list);
 #ifdef HAVE_SERVER_SUPPORT
@@ -2427,7 +2428,7 @@ restart:
        EXIT;
 }
 
-void ldlm_reprocess_all(struct ldlm_resource *res, __u64 hint)
+void ldlm_reprocess_all(struct ldlm_resource *res, enum mds_ibits_locks hint)
 {
        __ldlm_reprocess_all(res, LDLM_PROCESS_RESCAN, hint);
 }
@@ -2873,7 +2874,7 @@ void _ldlm_lock_debug(struct ldlm_lock *lock,
        case LDLM_IBITS:
                if (!lock->l_remote_handle.cookie)
                        libcfs_debug_msg(msgdata,
-                                "%pV ns: %s lock: %p/%#llx lrc: %d/%d,%d mode: %s/%s res: " DLDLMRES " bits %#llx/%#llx rrc: %d type: %s flags: %#llx pid: %u initiator: MDT%d\n",
+                                "%pV ns: %s lock: %p/%#llx lrc: %d/%d,%d mode: %s/%s res: " DLDLMRES " bits %#lx/%#lx rrc: %d type: %s flags: %#llx pid: %u initiator: MDT%d\n",
                                 &vaf,
                                 ldlm_lock_to_ns_name(lock),
                                 lock, lock->l_handle.h_cookie,
@@ -2890,7 +2891,7 @@ void _ldlm_lock_debug(struct ldlm_lock *lock,
                                 lock->l_policy_data.l_inodebits.li_initiator_id);
                else
                        libcfs_debug_msg(msgdata,
-                                "%pV ns: %s lock: %p/%#llx lrc: %d/%d,%d mode: %s/%s res: " DLDLMRES " bits %#llx/%#llx rrc: %d type: %s gid %llu flags: %#llx nid: %s remote: %#llx expref: %d pid: %u timeout: %lld lvb_type: %d\n",
+                                "%pV ns: %s lock: %p/%#llx lrc: %d/%d,%d mode: %s/%s res: " DLDLMRES " bits %#lx/%#lx rrc: %d type: %s gid %llu flags: %#llx nid: %s remote: %#llx expref: %d pid: %u timeout: %lld lvb_type: %d\n",
                                 &vaf,
                                 ldlm_lock_to_ns_name(lock),
                                 lock, lock->l_handle.h_cookie,
index a28a7a4..9a292fb 100644 (file)
@@ -1499,7 +1499,7 @@ existing_lock:
                        struct ldlm_lock_desc *rep_desc = &dlm_rep->lock_desc;
 
                        LDLM_DEBUG(lock,
-                                  "save blocking bits %llx in granted lock",
+                                  "save blocking bits %lx in granted lock",
                                   bl_lock->l_policy_data.l_inodebits.bits);
                        /*
                         * If lock is blocked then save blocking ibits
@@ -1666,8 +1666,8 @@ int ldlm_handle_convert0(struct ptlrpc_request *req,
        struct obd_export *exp = req->rq_export;
        struct ldlm_reply *dlm_rep;
        struct ldlm_lock *lock;
-       __u64 bits;
-       __u64 new_bits;
+       enum mds_ibits_locks bits;
+       enum mds_ibits_locks new_bits;
        int rc;
 
        ENTRY;
@@ -1720,7 +1720,8 @@ int ldlm_handle_convert0(struct ptlrpc_request *req,
                        ldlm_del_waiting_lock(lock);
 
                ldlm_clear_cbpending(lock);
-               lock->l_policy_data.l_inodebits.cancel_bits = 0;
+               lock->l_policy_data.l_inodebits.cancel_bits =
+                       MDS_INODELOCK_NONE;
                ldlm_inodebits_drop(lock, bits & ~new_bits);
 
                ldlm_clear_blocking_data(lock);
@@ -1912,7 +1913,8 @@ void ldlm_bl_desc2lock(const struct ldlm_lock_desc *ld, struct ldlm_lock *lock)
                    ldlm_res_eq(&ld->l_resource.lr_name,
                                &lock->l_resource->lr_name) &&
                    !(ldlm_is_cbpending(lock) &&
-                     lock->l_policy_data.l_inodebits.cancel_bits == 0)) {
+                     lock->l_policy_data.l_inodebits.cancel_bits ==
+                                               MDS_INODELOCK_NONE)) {
                        /* always combine conflicting ibits */
                        lock->l_policy_data.l_inodebits.cancel_bits |=
                                ld->l_policy_data.l_inodebits.cancel_bits;
@@ -1922,7 +1924,8 @@ void ldlm_bl_desc2lock(const struct ldlm_lock_desc *ld, struct ldlm_lock *lock)
                         * has no cancel_bits set
                         * - the full lock is to be cancelled
                         */
-                       lock->l_policy_data.l_inodebits.cancel_bits = 0;
+                       lock->l_policy_data.l_inodebits.cancel_bits =
+                                                  MDS_INODELOCK_NONE;
                }
        }
 }
index f5a0c3b..d141b79 100644 (file)
@@ -1241,7 +1241,8 @@ int ldlm_cli_convert_req(struct ldlm_lock *lock, __u32 *flags, __u64 new_bits)
        body->lock_desc.l_granted_mode = lock->l_granted_mode;
 
        body->lock_desc.l_policy_data.l_inodebits.bits = new_bits;
-       body->lock_desc.l_policy_data.l_inodebits.cancel_bits = 0;
+       body->lock_desc.l_policy_data.l_inodebits.cancel_bits =
+               MDS_INODELOCK_NONE;
 
        body->lock_flags = ldlm_flags_to_wire(*flags);
        body->lock_count = 1;
index 542c55c..d2aea76 100644 (file)
@@ -914,7 +914,7 @@ int lfsck_fid_alloc(const struct lu_env *env, struct lfsck_instance *lfsck,
                    struct lu_fid *fid, bool locked);
 int lfsck_ibits_lock(const struct lu_env *env, struct lfsck_instance *lfsck,
                     struct dt_object *obj, struct lustre_handle *lh,
-                    __u64 bits, enum ldlm_mode mode);
+                    enum mds_ibits_locks bits, enum ldlm_mode mode);
 void lfsck_ibits_unlock(struct lustre_handle *lh, enum ldlm_mode mode);
 int lfsck_remote_lookup_lock(const struct lu_env *env,
                             struct lfsck_instance *lfsck,
@@ -922,7 +922,8 @@ int lfsck_remote_lookup_lock(const struct lu_env *env,
                             struct lustre_handle *lh, enum ldlm_mode mode);
 int lfsck_lock(const struct lu_env *env, struct lfsck_instance *lfsck,
               struct dt_object *obj, const char *name,
-              struct lfsck_lock_handle *llh, __u64 bits, enum ldlm_mode mode);
+              struct lfsck_lock_handle *llh, enum mds_ibits_locks bits,
+              enum ldlm_mode mode);
 void lfsck_unlock(struct lfsck_lock_handle *llh);
 int lfsck_find_mdt_idx_by_fid(const struct lu_env *env,
                              struct lfsck_instance *lfsck,
index 48fc4de..0da9d9d 100644 (file)
@@ -344,8 +344,8 @@ int lfsck_fid_alloc(const struct lu_env *env, struct lfsck_instance *lfsck,
 static int __lfsck_ibits_lock(const struct lu_env *env,
                              struct lfsck_instance *lfsck,
                              struct dt_object *obj, struct ldlm_res_id *resid,
-                             struct lustre_handle *lh, __u64 bits,
-                             enum ldlm_mode mode)
+                             struct lustre_handle *lh,
+                             enum mds_ibits_locks bits, enum ldlm_mode mode)
 {
        struct lfsck_thread_info *info = lfsck_env_info(env);
        union ldlm_policy_data *policy = &info->lti_policy;
@@ -412,7 +412,7 @@ static int __lfsck_ibits_lock(const struct lu_env *env,
  */
 int lfsck_ibits_lock(const struct lu_env *env, struct lfsck_instance *lfsck,
                     struct dt_object *obj, struct lustre_handle *lh,
-                    __u64 bits, enum ldlm_mode mode)
+                    enum mds_ibits_locks bits, enum ldlm_mode mode)
 {
        struct ldlm_res_id *resid = &lfsck_env_info(env)->lti_resid;
 
@@ -495,7 +495,8 @@ void lfsck_ibits_unlock(struct lustre_handle *lh, enum ldlm_mode mode)
  */
 int lfsck_lock(const struct lu_env *env, struct lfsck_instance *lfsck,
               struct dt_object *obj, const char *name,
-              struct lfsck_lock_handle *llh, __u64 bits, enum ldlm_mode mode)
+              struct lfsck_lock_handle *llh, enum mds_ibits_locks bits,
+              enum ldlm_mode mode)
 {
        struct ldlm_res_id *resid = &lfsck_env_info(env)->lti_resid;
        int rc;
index dfc0127..634a932 100644 (file)
@@ -257,7 +257,7 @@ int ll_revalidate_it_finish(struct ptlrpc_request *request,
                            struct dentry *de)
 {
        struct inode *inode = de->d_inode;
-       __u64 bits = 0;
+       enum mds_ibits_locks bits = MDS_INODELOCK_NONE;
        int rc = 0;
 
        ENTRY;
index 91a78e3..47e5a9a 100644 (file)
@@ -785,7 +785,7 @@ retry:
        rc = ll_prep_inode(&de->d_inode, &req->rq_pill, NULL, itp);
 
        if (!rc && itp->it_lock_mode) {
-               __u64 bits = 0;
+               enum mds_ibits_locks bits = MDS_INODELOCK_NONE;
 
                /* if DoM bit returned along with LAYOUT bit then there
                 * can be read-on-open data returned.
@@ -1439,7 +1439,7 @@ ll_lease_open(struct inode *inode, struct file *file, fmode_t fmode,
            !(it.it_lock_bits & MDS_INODELOCK_OPEN)) {
                /* open lock must return for lease */
                rc = -EPROTO;
-               CERROR("%s: "DFID" lease granted but no open lock, %d/%llu: rc = %d\n",
+               CERROR("%s: "DFID" lease granted but no open lock, %d/%lu: rc = %d\n",
                       sbi->ll_fsname, PFID(ll_inode2fid(inode)),
                       it.it_lock_mode, it.it_lock_bits, rc);
                GOTO(out_close, rc);
@@ -6075,7 +6075,7 @@ int ll_have_md_lock(struct obd_export *exp, struct inode *inode,
        flags = LDLM_FL_BLOCK_GRANTED | LDLM_FL_CBPENDING | LDLM_FL_TEST_LOCK;
        for (i = 0; i < MDS_INODELOCK_NUMBITS && *bits != 0; i++) {
                policy.l_inodebits.bits = *bits & BIT(i);
-               if (policy.l_inodebits.bits == 0)
+               if (policy.l_inodebits.bits == MDS_INODELOCK_NONE)
                        continue;
 
                if (md_lock_match(exp, flags, fid, LDLM_IBITS, &policy, mode,
index 6c27fab..7789b5a 100644 (file)
@@ -2007,7 +2007,8 @@ static inline int ll_file_nolock(const struct file *file)
 }
 
 static inline void ll_set_lock_data(struct obd_export *exp, struct inode *inode,
-                                   struct lookup_intent *it, __u64 *bits)
+                                   struct lookup_intent *it,
+                                   enum mds_ibits_locks *bits)
 {
        if (!it->it_lock_set) {
                struct lustre_handle handle;
index 8e3c7d5..cd42c8a 100644 (file)
@@ -394,7 +394,7 @@ static void ll_lock_cancel_bits(struct ldlm_lock *lock,
 static int ll_md_need_convert(struct ldlm_lock *lock)
 {
        struct ldlm_namespace *ns = ldlm_lock_to_ns(lock);
-       __u64 wanted = lock->l_policy_data.l_inodebits.cancel_bits;
+       enum mds_ibits_locks want = lock->l_policy_data.l_inodebits.cancel_bits;
        enum ldlm_mode mode = LCK_MODE_MIN;
        enum mds_ibits_locks bits;
        struct inode *inode;
@@ -403,12 +403,12 @@ static int ll_md_need_convert(struct ldlm_lock *lock)
            !exp_connect_lock_convert(lock->l_conn_export))
                return 0;
 
-       bits = lock->l_policy_data.l_inodebits.bits & ~wanted;
-       if (!wanted || !bits || ldlm_is_cancel(lock))
+       bits = lock->l_policy_data.l_inodebits.bits & ~want;
+       if (!want || !bits || ldlm_is_cancel(lock))
                return 0;
 
        /* do not convert locks other than DOM for now */
-       if (!((bits | wanted) & MDS_INODELOCK_DOM))
+       if (!((bits | want) & MDS_INODELOCK_DOM))
                return 0;
 
        /* We may have already remaining bits in some other lock so
@@ -649,10 +649,10 @@ static int ll_lookup_it_finish(struct ptlrpc_request *request,
                               struct md_op_data *op_data,
                               ktime_t kstart, bool encrypt)
 {
-       struct inode             *inode = NULL;
-       __u64                     bits = 0;
-       int                       rc;
+       enum mds_ibits_locks bits = MDS_INODELOCK_NONE;
+       struct inode *inode = NULL;
        struct dentry *alias;
+       int rc;
 
        ENTRY;
 
@@ -1548,7 +1548,7 @@ static int ll_create_it(struct inode *dir, struct dentry *dentry,
                        bool encrypt, unsigned int open_flags)
 {
        struct inode *inode;
-       __u64 bits = 0;
+       enum mds_ibits_locks bits = MDS_INODELOCK_NONE;
        int rc = 0;
 
        ENTRY;
@@ -2217,7 +2217,7 @@ static int ll_mkdir(struct mnt_idmap *map, struct inode *dir,
                GOTO(out_fini, rc);
 
        if (mkdir_it.it_lock_mode) {
-               __u64 bits = 0;
+               enum mds_ibits_locks bits = MDS_INODELOCK_NONE;
 
                LASSERT(it_disposition(&mkdir_it, DISP_LOOKUP_NEG));
                ll_set_lock_data(sbi->ll_md_exp, inode, &mkdir_it, &bits);
index 4575102..6739093 100644 (file)
@@ -2071,7 +2071,7 @@ static int revalidate_statahead_dentry(struct inode *dir,
                struct lookup_intent it = { .it_op = IT_GETATTR,
                                            .it_lock_handle =
                                                entry->se_handle };
-               __u64 bits;
+               enum mds_ibits_locks bits;
 
                rc = md_revalidate_lock(ll_i2mdexp(dir), &it,
                                        ll_inode2fid(inode), &bits);
index 3cef400..618926d 100644 (file)
@@ -2417,7 +2417,8 @@ retry:
 
 static int lmv_early_cancel(struct obd_export *exp, struct lmv_tgt_desc *tgt,
                            struct md_op_data *op_data, __u32 op_tgt,
-                           enum ldlm_mode mode, int bits, int flag)
+                           enum ldlm_mode mode, enum mds_ibits_locks bits,
+                           int flag)
 {
        struct lu_fid *fid = md_op_data_fid(op_data, flag);
        struct lmv_obd *lmv = &exp->exp_obd->u.lmv;
@@ -3932,7 +3933,7 @@ static int lmv_cancel_unused(struct obd_export *exp, const struct lu_fid *fid,
 
 static int lmv_set_lock_data(struct obd_export *exp,
                             const struct lustre_handle *lockh,
-                            void *data, __u64 *bits)
+                            void *data, enum mds_ibits_locks *bits)
 {
        struct lmv_obd *lmv = &exp->exp_obd->u.lmv;
        struct lmv_tgt_desc *tgt = lmv_tgt(lmv, 0);
@@ -4105,7 +4106,7 @@ static int lmv_intent_getattr_async(struct obd_export *exp,
 }
 
 static int lmv_revalidate_lock(struct obd_export *exp, struct lookup_intent *it,
-                              struct lu_fid *fid, __u64 *bits)
+                              struct lu_fid *fid, enum mds_ibits_locks *bits)
 {
        struct obd_device *obd = exp->exp_obd;
        struct lmv_obd *lmv = &obd->u.lmv;
index a49eb17..281a864 100644 (file)
@@ -57,7 +57,7 @@ void mdc_close_pack(struct req_capsule *pill, struct md_op_data *op_data);
 /* mdc/mdc_locks.c */
 int mdc_set_lock_data(struct obd_export *exp,
                      const struct lustre_handle *lockh,
-                     void *data, __u64 *bits);
+                     void *data, enum mds_ibits_locks *bits);
 
 int mdc_null_inode(struct obd_export *exp, const struct lu_fid *fid);
 
@@ -119,7 +119,7 @@ int mdc_cancel_unused(struct obd_export *exp, const struct lu_fid *fid,
                      enum ldlm_cancel_flags flags, void *opaque);
 
 int mdc_revalidate_lock(struct obd_export *exp, struct lookup_intent *it,
-                        struct lu_fid *fid, __u64 *bits);
+                       struct lu_fid *fid, enum mds_ibits_locks *bits);
 
 int mdc_intent_getattr_async(struct obd_export *exp, struct md_op_item *item);
 
index 6e644a2..9fed4ea 100644 (file)
@@ -86,7 +86,7 @@ EXPORT_SYMBOL(it_open_error);
 
 /* this must be called on a lockh that is known to have a referenced lock */
 int mdc_set_lock_data(struct obd_export *exp, const struct lustre_handle *lockh,
-                     void *data, __u64 *bits)
+                     void *data, enum mds_ibits_locks *bits)
 {
        struct ldlm_lock *lock;
        struct inode *new_inode = data;
@@ -1389,7 +1389,7 @@ out:
 }
 
 int mdc_revalidate_lock(struct obd_export *exp, struct lookup_intent *it,
-                       struct lu_fid *fid, __u64 *bits)
+                       struct lu_fid *fid, enum mds_ibits_locks *bits)
 {
        /* We could just return 1 immediately, but as we should only be called
         * in revalidate_it if we already have a lock, let's verify that.
index 3e9074d..5b91ff4 100644 (file)
@@ -2078,7 +2078,7 @@ out_match:
  */
 static int mdt_getattr_name_lock(struct mdt_thread_info *info,
                                 struct mdt_lock_handle *lhc,
-                                __u64 child_bits,
+                                enum mds_ibits_locks child_bits,
                                 struct ldlm_reply *ldlm_rep)
 {
        struct ptlrpc_request *req = mdt_info_req(info);
@@ -2091,7 +2091,7 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
        struct ldlm_lock *lock;
        struct req_capsule *pill = info->mti_pill;
        bool fscrypt_md = false;
-       __u64 try_bits = 0;
+       enum mds_ibits_locks try_bits = MDS_INODELOCK_NONE;
        bool is_resent;
        int ma_need = 0;
        int rc;
@@ -2430,7 +2430,7 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
                        child_bits = 0;
                }
 
-               if (try_bits != 0) {
+               if (try_bits != MDS_INODELOCK_NONE) {
                        /* try layout lock, it may fail to be granted due to
                         * contention at LOOKUP or UPDATE
                         */
@@ -4074,7 +4074,7 @@ int mdt_object_pdo_lock(struct mdt_thread_info *info, struct mdt_object *obj,
                return -ENOTDIR;
 
        policy->l_inodebits.bits = MDS_INODELOCK_UPDATE;
-       policy->l_inodebits.try_bits = 0;
+       policy->l_inodebits.try_bits = MDS_INODELOCK_NONE;
        policy->l_inodebits.li_gid = 0;
        policy->l_inodebits.li_initiator_id = mdt_node_id(info->mti_mdt);
        fid_build_reg_res_name(mdt_object_fid(obj), res_id);
@@ -4121,8 +4121,10 @@ int mdt_object_pdo_lock(struct mdt_thread_info *info, struct mdt_object *obj,
 
 int mdt_object_lock_internal(struct mdt_thread_info *info,
                             struct mdt_object *obj, const struct lu_fid *fid,
-                            struct mdt_lock_handle *lh, __u64 *ibits,
-                            __u64 trybits, bool cache)
+                            struct mdt_lock_handle *lh,
+                            enum mds_ibits_locks *ibits,
+                            enum mds_ibits_locks trybits,
+                            bool cache)
 {
        union ldlm_policy_data *policy = &info->mti_policy;
        struct ldlm_res_id *res_id = &info->mti_res_id;
@@ -4228,7 +4230,7 @@ int mdt_object_lock_internal(struct mdt_thread_info *info,
  * \retval             0 on success, -ev on error.
  */
 int mdt_object_lock(struct mdt_thread_info *info, struct mdt_object *obj,
-                   struct mdt_lock_handle *lh, __u64 ibits,
+                   struct mdt_lock_handle *lh,  enum mds_ibits_locks ibits,
                    enum ldlm_mode mode)
 {
        int rc;
@@ -4260,8 +4262,8 @@ int mdt_object_lock(struct mdt_thread_info *info, struct mdt_object *obj,
  */
 int mdt_object_check_lock(struct mdt_thread_info *info,
                          struct mdt_object *parent, struct mdt_object *child,
-                         struct mdt_lock_handle *lh, __u64 ibits,
-                         enum ldlm_mode mode)
+                         struct mdt_lock_handle *lh,
+                         enum mds_ibits_locks ibits, enum ldlm_mode mode)
 {
        int rc;
 
@@ -4276,7 +4278,7 @@ int mdt_object_check_lock(struct mdt_thread_info *info,
 
        mdt_lock_reg_init(lh, mode);
        if (mdt_object_remote(parent) ^ mdt_object_remote(child)) {
-               __u64 lookup_ibits = MDS_INODELOCK_LOOKUP;
+               enum mds_ibits_locks lookup_ibits = MDS_INODELOCK_LOOKUP;
 
                rc = mdt_object_lock_internal(info, parent,
                                              mdt_object_fid(child), lh,
@@ -4319,7 +4321,7 @@ int mdt_parent_lock(struct mdt_thread_info *info, struct mdt_object *obj,
        LASSERT(obj && lname);
        LASSERT(mode == LCK_PW || mode == LCK_PR);
        if (mdt_object_remote(obj) && mode == LCK_PR) {
-               __u64 ibits = MDS_INODELOCK_UPDATE;
+               enum mds_ibits_locks ibits = MDS_INODELOCK_UPDATE;
 
                mdt_lock_reg_init(lh, mode);
                rc = mdt_object_lock_internal(info, obj, mdt_object_fid(obj),
@@ -4348,8 +4350,8 @@ int mdt_parent_lock(struct mdt_thread_info *info, struct mdt_object *obj,
  * \retval             0 on success, -ev on error.
  */
 int mdt_object_lock_try(struct mdt_thread_info *info, struct mdt_object *obj,
-                       struct mdt_lock_handle *lh, __u64 *ibits,
-                       __u64 trybits, enum ldlm_mode mode)
+                       struct mdt_lock_handle *lh, enum mds_ibits_locks *ibits,
+                       enum mds_ibits_locks trybits, enum ldlm_mode mode)
 {
        bool trylock_only = *ibits == 0;
        int rc;
@@ -4375,7 +4377,7 @@ int mdt_object_lookup_lock(struct mdt_thread_info *info,
                           struct mdt_object *pobj, struct mdt_object *obj,
                           struct mdt_lock_handle *lh, enum ldlm_mode mode)
 {
-       __u64 ibits = MDS_INODELOCK_LOOKUP;
+       enum mds_ibits_locks ibits = MDS_INODELOCK_LOOKUP;
        int rc;
 
        ENTRY;
@@ -4538,7 +4540,8 @@ void mdt_object_unlock(struct mdt_thread_info *info, struct mdt_object *o,
 struct mdt_object *mdt_object_find_lock(struct mdt_thread_info *info,
                                        const struct lu_fid *f,
                                        struct mdt_lock_handle *lh,
-                                       __u64 ibits, enum ldlm_mode mode)
+                                       enum mds_ibits_locks ibits,
+                                       enum ldlm_mode mode)
 {
        struct mdt_object *o;
 
index 67b39e7..12c3a52 100644 (file)
@@ -817,7 +817,7 @@ int mdt_check_resent_lock(struct mdt_thread_info *info, struct mdt_object *mo,
                          struct mdt_lock_handle *lhc);
 
 int mdt_object_lock(struct mdt_thread_info *info, struct mdt_object *obj,
-                   struct mdt_lock_handle *lh, __u64 ibits,
+                   struct mdt_lock_handle *lh, enum mds_ibits_locks ibits,
                    enum ldlm_mode mode);
 int mdt_parent_lock(struct mdt_thread_info *info, struct mdt_object *o,
                    struct mdt_lock_handle *lh, const struct lu_name *lname,
@@ -825,21 +825,25 @@ int mdt_parent_lock(struct mdt_thread_info *info, struct mdt_object *o,
 int mdt_object_stripes_lock(struct mdt_thread_info *info,
                            struct mdt_object *pobj, struct mdt_object *o,
                            struct mdt_lock_handle *lh,
-                           struct ldlm_enqueue_info *einfo, __u64 ibits,
+                           struct ldlm_enqueue_info *einfo,
+                           enum mds_ibits_locks ibits,
                            enum ldlm_mode mode);
 int mdt_object_check_lock(struct mdt_thread_info *info,
                          struct mdt_object *parent, struct mdt_object *child,
-                         struct mdt_lock_handle *lh, __u64 ibits,
-                         enum ldlm_mode mode);
+                         struct mdt_lock_handle *lh,
+                         enum mds_ibits_locks ibits, enum ldlm_mode mode);
 int mdt_object_lock_try(struct mdt_thread_info *info, struct mdt_object *mo,
-                       struct mdt_lock_handle *lh, __u64 *ibits,
-                       __u64 trybits, enum ldlm_mode mode);
+                       struct mdt_lock_handle *lh,
+                       enum mds_ibits_locks *ibits,
+                       enum mds_ibits_locks trybits, enum ldlm_mode mode);
 
 /* below three lock functions are used internally */
 int mdt_object_lock_internal(struct mdt_thread_info *info,
                             struct mdt_object *obj, const struct lu_fid *fid,
-                            struct mdt_lock_handle *lh, __u64 *ibits,
-                            __u64 trybits, bool cache);
+                            struct mdt_lock_handle *lh,
+                            enum mds_ibits_locks *ibits,
+                            enum mds_ibits_locks trybits,
+                            bool cache);
 int mdt_object_pdo_lock(struct mdt_thread_info *info, struct mdt_object *obj,
                        struct mdt_lock_handle *lh, const struct lu_name *name,
                        enum ldlm_mode mode, bool pdo_lock);
@@ -862,7 +866,8 @@ struct mdt_object *mdt_object_find(const struct lu_env *env,
 struct mdt_object *mdt_object_find_lock(struct mdt_thread_info *info,
                                        const struct lu_fid *f,
                                        struct mdt_lock_handle *lh,
-                                       __u64 ibits, enum ldlm_mode mode);
+                                       enum mds_ibits_locks ibits,
+                                       enum ldlm_mode mode);
 void mdt_object_unlock_put(struct mdt_thread_info *info,
                           struct mdt_object *o,
                           struct mdt_lock_handle *lh,
index 3735b5f..0fd543b 100644 (file)
@@ -1589,7 +1589,7 @@ int mdt_brw_enqueue(struct mdt_thread_info *mti, struct ldlm_namespace *ns,
        mdt_intent_fixup_resent(mti, *lockp, lhc, flags);
        /* resent case */
        if (!lustre_handle_is_used(&lhc->mlh_reg_lh)) {
-               __u64 ibits = MDS_INODELOCK_DOM;
+               enum mds_ibits_locks ibits = MDS_INODELOCK_DOM;
 
                mdt_lh_reg_init(lhc, *lockp);
 
@@ -2031,7 +2031,7 @@ void mdt_dom_discard_data(struct mdt_thread_info *info,
                RETURN_EXIT;
 
        policy.l_inodebits.bits = MDS_INODELOCK_DOM;
-       policy.l_inodebits.try_bits = 0;
+       policy.l_inodebits.try_bits = MDS_INODELOCK_NONE;
        policy.l_inodebits.li_initiator_id = mdt_node_id(mdt);
        fid_build_reg_res_name(mdt_object_fid(mo), &res_id);
 
index 8aef0d1..58d3077 100644 (file)
@@ -792,11 +792,11 @@ out:
 static int mdt_object_open_lock(struct mdt_thread_info *info,
                                struct mdt_object *obj,
                                struct mdt_lock_handle *lhc,
-                               __u64 *ibits)
+                               enum mds_ibits_locks *ibits)
 {
        struct md_attr *ma = &info->mti_attr;
        enum mds_open_flags open_flags = info->mti_spec.sp_cr_flags;
-       __u64 trybits = 0;
+       enum mds_ibits_locks trybits = MDS_INODELOCK_NONE;
        enum ldlm_mode lm = LCK_PR;
        bool acq_lease = !!(open_flags & MDS_OPEN_LEASE);
        bool try_layout = false;
@@ -808,7 +808,7 @@ static int mdt_object_open_lock(struct mdt_thread_info *info,
        struct ptlrpc_request *req = mdt_info_req(info);
 
        ENTRY;
-       *ibits = 0;
+       *ibits = MDS_INODELOCK_NONE;
        if (req_is_replay(mdt_info_req(info)))
                RETURN(0);
 
@@ -852,8 +852,7 @@ static int mdt_object_open_lock(struct mdt_thread_info *info,
 
                /* Lease must be with open lock */
                if (!(open_flags & MDS_OPEN_LOCK)) {
-                       CERROR("%s: Request lease for file:"DFID ", but open lock "
-                              "is missed, open_flags = %#lo : rc = %d\n",
+                       CERROR("%s: Request lease for file:"DFID ", but open lock is missed, open_flags = %#lo : rc = %d\n",
                               mdt_obd_name(info->mti_mdt),
                               PFID(mdt_object_fid(obj)), open_flags, -EPROTO);
                        GOTO(out, rc = -EPROTO);
@@ -940,8 +939,8 @@ static int mdt_object_open_lock(struct mdt_thread_info *info,
        if (*ibits | trybits)
                rc = mdt_object_lock_try(info, obj, lhc, ibits, trybits, lm);
 
-       CDEBUG(D_INODE, "%s: Requested bits lock:"DFID ", ibits = %#llx/%#llx"
-              ", open_flags = %#lo, try_layout = %d : rc = %d\n",
+       CDEBUG(D_INODE,
+              "%s: Requested bits lock:"DFID ", ibits = %#lx/%#lx, open_flags = %#lo, try_layout = %d : rc = %d\n",
               mdt_obd_name(info->mti_mdt), PFID(mdt_object_fid(obj)),
               *ibits, trybits, open_flags, try_layout, rc);
 
@@ -1016,7 +1015,7 @@ out:
 static void mdt_object_open_unlock(struct mdt_thread_info *info,
                                   struct mdt_object *obj,
                                   struct mdt_lock_handle *lhc,
-                                  __u64 ibits, int rc)
+                                  enum mds_ibits_locks ibits, int rc)
 {
        enum mds_open_flags open_flags = info->mti_spec.sp_cr_flags;
        struct mdt_lock_handle *ll = &info->mti_lh[MDT_LH_LOCAL];
@@ -1043,7 +1042,7 @@ static void mdt_object_open_unlock(struct mdt_thread_info *info,
                up_read(&obj->mot_open_sem);
 
        /* Cross-ref case, the lock should be returned to the client */
-       if (ibits == 0 || rc == -MDT_EREMOTE_OPEN)
+       if (ibits == MDS_INODELOCK_NONE || rc == -MDT_EREMOTE_OPEN)
                RETURN_EXIT;
 
        if (!(open_flags & MDS_OPEN_LOCK) &&
@@ -1084,7 +1083,7 @@ static bool mdt_hsm_release_allow(const struct md_attr *ma)
 
 static int mdt_refetch_lovea(struct mdt_thread_info *info,
                             struct mdt_object *o, struct md_attr *ma,
-                            u64 ibits)
+                            enum mds_ibits_locks ibits)
 {
        struct mdt_body *repbody;
        int rc;
@@ -1123,7 +1122,7 @@ static int mdt_open_by_fid_lock(struct mdt_thread_info *info,
        struct mdt_object *parent = NULL;
        struct mdt_object *o;
        bool object_locked = false;
-       u64 ibits = 0;
+       enum mds_ibits_locks ibits = MDS_INODELOCK_NONE;
        int rc;
 
        ENTRY;
@@ -1319,7 +1318,7 @@ static int mdt_lock_root_xattr(struct mdt_thread_info *info,
 {
        struct mdt_object *md_root = mdt->mdt_md_root;
        struct mdt_lock_handle *lh = &info->mti_lh[MDT_LH_LOCAL];
-       __u64 ibits = MDS_INODELOCK_XATTR;
+       enum mds_ibits_locks ibits = MDS_INODELOCK_XATTR;
        int rc;
 
        if (md_root == NULL) {
@@ -1429,7 +1428,7 @@ int mdt_reint_open(struct mdt_thread_info *info, struct mdt_lock_handle *lhc)
        struct lu_ucred *uc = mdt_ucred(info);
        struct md_attr *ma = &info->mti_attr;
        enum mds_open_flags open_flags = info->mti_spec.sp_cr_flags;
-       u64 ibits = 0;
+       enum mds_ibits_locks ibits = MDS_INODELOCK_NONE;
        struct mdt_reint_record *rr = &info->mti_rr;
        int result, rc;
        int created = 0;
index 08814b0..2eab5b7 100644 (file)
@@ -232,7 +232,7 @@ static int mdt_stripes_unlock(struct mdt_thread_info *mti,
  * will be stored in einfo->ei_cbdata.
  **/
 static int mdt_stripes_lock(struct mdt_thread_info *mti, struct mdt_object *obj,
-                           enum ldlm_mode mode, __u64 ibits,
+                           enum ldlm_mode mode, enum mds_ibits_locks ibits,
                            struct ldlm_enqueue_info *einfo)
 {
        union ldlm_policy_data *policy = &mti->mti_policy;
@@ -274,7 +274,8 @@ int mdt_object_stripes_lock(struct mdt_thread_info *info,
                            struct mdt_object *parent,
                            struct mdt_object *child,
                            struct mdt_lock_handle *lh,
-                           struct ldlm_enqueue_info *einfo, __u64 ibits,
+                           struct ldlm_enqueue_info *einfo,
+                           enum mds_ibits_locks ibits,
                            enum ldlm_mode mode)
 {
        int rc;
@@ -802,7 +803,7 @@ static int mdt_attr_set(struct mdt_thread_info *info, struct mdt_object *mo,
        struct mdt_lock_handle  *lh;
        int do_vbr = ma->ma_attr.la_valid &
                        (LA_MODE | LA_UID | LA_GID | LA_PROJID | LA_FLAGS);
-       __u64 lockpart = MDS_INODELOCK_UPDATE;
+       enum mds_ibits_locks lockpart = MDS_INODELOCK_UPDATE;
        struct ldlm_enqueue_info *einfo = &info->mti_einfo;
        int rc;
 
@@ -1537,9 +1538,9 @@ put_parent:
 static int mdt_rename_lock(struct mdt_thread_info *info,
                           struct mdt_lock_handle *lh)
 {
+       enum mds_ibits_locks ibits = MDS_INODELOCK_UPDATE;
        struct lu_fid *fid = &info->mti_tmp_fid1;
        struct mdt_object *obj;
-       __u64 ibits = MDS_INODELOCK_UPDATE;
        int rc;
 
        ENTRY;
@@ -1607,7 +1608,7 @@ static int mdt_rename_source_lock(struct mdt_thread_info *info,
                                  struct mdt_object *child,
                                  struct mdt_lock_handle *lh,
                                  struct mdt_lock_handle *lh_lookup,
-                                 __u64 ibits)
+                                 enum mds_ibits_locks ibits)
 {
        int rc;
 
@@ -1706,7 +1707,7 @@ static int mdt_migrate_link_parent_lock(struct mdt_thread_info *info,
        const struct lu_fid *fid = mdt_object_fid(lnkp);
        struct mdt_lock_handle *lhl = &info->mti_lh[MDT_LH_LOCAL];
        struct mdt_link_lock *entry;
-       __u64 ibits = 0;
+       enum mds_ibits_locks ibits = MDS_INODELOCK_NONE;
        int rc;
 
        ENTRY;
index 862d039..87a5438 100644 (file)
@@ -517,7 +517,7 @@ int mdt_reint_setxattr(struct mdt_thread_info *info,
        __u64                    valid = attr->la_valid;
        const char              *xattr_name = rr->rr_name.ln_name;
        int                      xattr_len = rr->rr_eadatalen;
-       __u64                    lockpart = MDS_INODELOCK_UPDATE;
+       enum mds_ibits_locks     lockpart = MDS_INODELOCK_UPDATE;
        ktime_t                  kstart = ktime_get();
        int                      rc;
        ENTRY;
index cc582aa..8937980 100644 (file)
@@ -821,7 +821,7 @@ obd_connect_data_seqprint(struct seq_file *m, struct obd_connect_data *ocd)
        if (flags & OBD_CONNECT_BRW_SIZE)
                seq_printf(m, "       max_brw_size: %d\n", ocd->ocd_brw_size);
        if (flags & OBD_CONNECT_IBITS)
-               seq_printf(m, "       ibits_known: %#llx\n",
+               seq_printf(m, "       ibits_known: %#lx\n",
                           ocd->ocd_ibits_known);
        if (flags & OBD_CONNECT_GRANT_PARAM)
                seq_printf(m, "       grant_block_size: %d\n"
index 1343097..7e76bc5 100644 (file)
@@ -1749,7 +1749,7 @@ void lustre_swab_connect(struct obd_connect_data *ocd)
        __swab64s(&ocd->ocd_connect_flags);
        __swab32s(&ocd->ocd_version);
        __swab32s(&ocd->ocd_grant);
-       __swab64s(&ocd->ocd_ibits_known);
+       __swab64s((__u64 *)&ocd->ocd_ibits_known);
        __swab32s(&ocd->ocd_index);
        __swab32s(&ocd->ocd_brw_size);
        /*
index ce8e9b9..c1bd5d4 100644 (file)
@@ -331,7 +331,8 @@ static int tgt_request_preprocess(struct tgt_session_info *tsi,
                        if (unlikely(dlm_req->lock_desc.l_resource.lr_type ==
                                     LDLM_IBITS &&
                                     (policy->l_inodebits.bits |
-                                     policy->l_inodebits.try_bits) == 0)) {
+                                     policy->l_inodebits.try_bits) ==
+                                               MDS_INODELOCK_NONE)) {
                                /*
                                 * Lock without inodebits makes no sense and
                                 * will oops later in ldlm. If client miss to