Whamcloud - gitweb
LU-1305 lu: fid_is_acct function
[fs/lustre-release.git] / lustre / include / lustre_fid.h
index db88f41..e4c8324 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109,11 +107,8 @@ enum local_oid {
         MDD_ORPHAN_OID          = 7UL,
         MDD_LOV_OBJ_OID         = 8UL,
         MDD_CAPA_KEYS_OID       = 9UL,
-        MDD_OBJECTS_OID         = 10UL,
         /** \see mdt_mod_init */
         MDT_LAST_RECV_OID       = 11UL,
-        /** \see osd_mod_init */
-        OSD_REM_OBJ_DIR_OID     = 12UL,
         OSD_FS_ROOT_OID         = 13UL,
         ACCT_USER_OID           = 15UL,
         ACCT_GROUP_OID          = 16UL,
@@ -124,12 +119,6 @@ enum local_oid {
         LLOG_CATALOGS_OID       = 4118UL,
         MGS_CONFIGS_OID         = 4119UL,
         OFD_HEALTH_CHECK_OID    = 4120UL,
-
-        /** first OID for first OI fid */
-        OSD_OI_FID_OID_FIRST    = 5000UL,
-        /** reserve enough in case we want to have more in the future */
-        OSD_OI_FID_OID_MAX      = OSD_OI_FID_OID_FIRST +
-                                  (1UL << OSD_OI_FID_OID_BITS_MAX),
 };
 
 static inline void lu_local_obj_fid(struct lu_fid *fid, __u32 oid)
@@ -139,6 +128,13 @@ static inline void lu_local_obj_fid(struct lu_fid *fid, __u32 oid)
         fid->f_ver = 0;
 }
 
+static inline int fid_is_acct(const struct lu_fid *fid)
+{
+        return fid_seq(fid) == FID_SEQ_LOCAL_FILE &&
+               (fid_oid(fid) == ACCT_USER_OID ||
+                fid_oid(fid) == ACCT_GROUP_OID);
+}
+
 enum lu_mgr_type {
         LUSTRE_SEQ_SERVER,
         LUSTRE_SEQ_CONTROLLER
@@ -155,7 +151,7 @@ struct lu_server_seq;
 struct lu_client_seq {
         /* Sequence-controller export. */
         struct obd_export      *lcs_exp;
-        cfs_semaphore_t         lcs_sem;
+        cfs_mutex_t             lcs_mutex;
 
         /*
          * Range of allowed for allocation sequeces. When using lu_client_seq on
@@ -220,8 +216,8 @@ struct lu_server_seq {
         /* Client interafce to request controller */
         struct lu_client_seq   *lss_cli;
 
-        /* Semaphore for protecting allocation */
-        cfs_semaphore_t         lss_sem;
+        /* Mutex for protecting allocation */
+        cfs_mutex_t             lss_mutex;
 
         /*
          * Service uuid, passed from MDT + seq name to form unique seq name to
@@ -298,15 +294,12 @@ int fid_is_local(const struct lu_env *env,
 
 struct ldlm_namespace;
 
-enum {
-        LUSTRE_RES_ID_SEQ_OFF = 0,
-        LUSTRE_RES_ID_OID_OFF = 1,
-        LUSTRE_RES_ID_VER_OFF = 2,
-        LUSTRE_RES_ID_HSH_OFF = 3
-};
-
 /*
- * Build (DLM) resource name from fid.
+ * Build (DLM) resource name from FID.
+ *
+ * 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
+ * renaming name[2,3] fields that need to be used for the quota identifier.
  */
 static inline struct ldlm_res_id *
 fid_build_reg_res_name(const struct lu_fid *f,
@@ -314,8 +307,7 @@ fid_build_reg_res_name(const struct lu_fid *f,
 {
         memset(name, 0, sizeof *name);
         name->name[LUSTRE_RES_ID_SEQ_OFF] = fid_seq(f);
-        name->name[LUSTRE_RES_ID_OID_OFF] = fid_oid(f);
-        name->name[LUSTRE_RES_ID_VER_OFF] = fid_ver(f);
+        name->name[LUSTRE_RES_ID_VER_OID_OFF] = fid_ver_oid(f);
         return name;
 }
 
@@ -325,10 +317,8 @@ fid_build_reg_res_name(const struct lu_fid *f,
 static inline int fid_res_name_eq(const struct lu_fid *f,
                                   const struct ldlm_res_id *name)
 {
-        return
-                name->name[LUSTRE_RES_ID_SEQ_OFF] == fid_seq(f) &&
-                name->name[LUSTRE_RES_ID_OID_OFF] == fid_oid(f) &&
-                name->name[LUSTRE_RES_ID_VER_OFF] == fid_ver(f);
+        return name->name[LUSTRE_RES_ID_SEQ_OFF] == fid_seq(f) &&
+               name->name[LUSTRE_RES_ID_VER_OID_OFF] == fid_ver_oid(f);
 }