The sequence of LUSTRE_BFL_FID is in conflict with
FID_SEQ_OST_MDT1, so reserve a new sequence for this FID.
Also it defines a new FID sequence(FID_SEQ_SPECIAL) for
later special purpose.
Move some special dot_lustre oid to lustre_idl.h, so avoid
oid conflict in future.
Signed-off-by: Wang Di <di.wang@whamcloud.com>
Change-Id: I556b31c706cc04c610c909f83e59f0cb9a821535
Reviewed-on: http://review.whamcloud.com/2180
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
EXPORT_SYMBOL(LUSTRE_SEQ_ZERO_RANGE);
/* Lustre Big Fs Lock fid. */
EXPORT_SYMBOL(LUSTRE_SEQ_ZERO_RANGE);
/* Lustre Big Fs Lock fid. */
-const struct lu_fid LUSTRE_BFL_FID = { .f_seq = 0x0000000000000003,
- .f_oid = 0x0000000000000001,
+const struct lu_fid LUSTRE_BFL_FID = { .f_seq = FID_SEQ_SPECIAL,
+ .f_oid = FID_OID_SPECIAL_BFL,
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LUSTRE_BFL_FID);
/** Special fid for ".lustre" directory */
const struct lu_fid LU_DOT_LUSTRE_FID = { .f_seq = FID_SEQ_DOT_LUSTRE,
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LUSTRE_BFL_FID);
/** Special fid for ".lustre" directory */
const struct lu_fid LU_DOT_LUSTRE_FID = { .f_seq = FID_SEQ_DOT_LUSTRE,
- .f_oid = 0x0000000000000001,
+ .f_oid = FID_OID_DOT_LUSTRE,
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LU_DOT_LUSTRE_FID);
/** Special fid for "fid" special object in .lustre */
const struct lu_fid LU_OBF_FID = { .f_seq = FID_SEQ_DOT_LUSTRE,
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LU_DOT_LUSTRE_FID);
/** Special fid for "fid" special object in .lustre */
const struct lu_fid LU_OBF_FID = { .f_seq = FID_SEQ_DOT_LUSTRE,
- .f_oid = 0x0000000000000002,
+ .f_oid = FID_OID_DOT_LUSTRE_OBF,
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LU_OBF_FID);
.f_ver = 0x0000000000000000 };
EXPORT_SYMBOL(LU_OBF_FID);
FID_SEQ_START = 0x200000000ULL,
FID_SEQ_LOCAL_FILE = 0x200000001ULL,
FID_SEQ_DOT_LUSTRE = 0x200000002ULL,
FID_SEQ_START = 0x200000000ULL,
FID_SEQ_LOCAL_FILE = 0x200000001ULL,
FID_SEQ_DOT_LUSTRE = 0x200000002ULL,
+ /* XXX 0x200000003ULL is reserved for FID_SEQ_LLOG_OBJ */
+ FID_SEQ_SPECIAL = 0x200000004ULL,
FID_SEQ_NORMAL = 0x200000400ULL,
FID_SEQ_LOV_DEFAULT= 0xffffffffffffffffULL
};
FID_SEQ_NORMAL = 0x200000400ULL,
FID_SEQ_LOV_DEFAULT= 0xffffffffffffffffULL
};
#define IDIF_MAX_OID (1ULL << IDIF_OID_MAX_BITS)
#define IDIF_OID_MASK ((1ULL << IDIF_OID_MAX_BITS) - 1)
#define IDIF_MAX_OID (1ULL << IDIF_OID_MAX_BITS)
#define IDIF_OID_MASK ((1ULL << IDIF_OID_MAX_BITS) - 1)
+/** OID for FID_SEQ_SPECIAL */
+enum special_oid {
+ /* Big Filesystem Lock to serialize rename operations */
+ FID_OID_SPECIAL_BFL = 1UL,
+};
+
+/** OID for FID_SEQ_DOT_LUSTRE */
+enum dot_lustre_oid {
+ FID_OID_DOT_LUSTRE = 1UL,
+ FID_OID_DOT_LUSTRE_OBF = 2UL,
+};
static inline int fid_seq_is_mdt0(obd_seq seq)
{
static inline int fid_seq_is_mdt0(obd_seq seq)
{
(long long)FID_SEQ_LOCAL_FILE);
LASSERTF(FID_SEQ_DOT_LUSTRE == 0x0000000200000002ULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_DOT_LUSTRE);
(long long)FID_SEQ_LOCAL_FILE);
LASSERTF(FID_SEQ_DOT_LUSTRE == 0x0000000200000002ULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_DOT_LUSTRE);
+ LASSERTF(FID_SEQ_SPECIAL == 0x0000000200000004ULL, "found 0x%.16llxULL\n",
+ (long long)FID_SEQ_SPECIAL);
LASSERTF(FID_SEQ_NORMAL == 0x0000000200000400ULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_NORMAL);
LASSERTF(FID_SEQ_LOV_DEFAULT == 0xffffffffffffffffULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_LOV_DEFAULT);
LASSERTF(FID_SEQ_NORMAL == 0x0000000200000400ULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_NORMAL);
LASSERTF(FID_SEQ_LOV_DEFAULT == 0xffffffffffffffffULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_LOV_DEFAULT);
+ LASSERTF(FID_OID_SPECIAL_BFL == 0x00000001UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_SPECIAL_BFL);
+ LASSERTF(FID_OID_DOT_LUSTRE == 0x00000001UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_DOT_LUSTRE);
+ LASSERTF(FID_OID_DOT_LUSTRE_OBF == 0x00000002UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_DOT_LUSTRE_OBF);
+
/* Checks for struct lu_dirent */
LASSERTF((int)sizeof(struct lu_dirent) == 32, "found %lld\n",
(long long)(int)sizeof(struct lu_dirent));
/* Checks for struct lu_dirent */
LASSERTF((int)sizeof(struct lu_dirent) == 32, "found %lld\n",
(long long)(int)sizeof(struct lu_dirent));
CHECK_VALUE_64X(FID_SEQ_START);
CHECK_VALUE_64X(FID_SEQ_LOCAL_FILE);
CHECK_VALUE_64X(FID_SEQ_DOT_LUSTRE);
CHECK_VALUE_64X(FID_SEQ_START);
CHECK_VALUE_64X(FID_SEQ_LOCAL_FILE);
CHECK_VALUE_64X(FID_SEQ_DOT_LUSTRE);
+ CHECK_VALUE_64X(FID_SEQ_SPECIAL);
CHECK_VALUE_64X(FID_SEQ_NORMAL);
CHECK_VALUE_64X(FID_SEQ_LOV_DEFAULT);
CHECK_VALUE_64X(FID_SEQ_NORMAL);
CHECK_VALUE_64X(FID_SEQ_LOV_DEFAULT);
+
+ CHECK_VALUE(FID_OID_SPECIAL_BFL);
+ CHECK_VALUE(FID_OID_DOT_LUSTRE);
+ CHECK_VALUE(FID_OID_DOT_LUSTRE_OBF);
LASSERTF(FID_SEQ_LOV_DEFAULT == 0xffffffffffffffffULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_LOV_DEFAULT);
LASSERTF(FID_SEQ_LOV_DEFAULT == 0xffffffffffffffffULL, "found 0x%.16llxULL\n",
(long long)FID_SEQ_LOV_DEFAULT);
+ LASSERTF(FID_OID_SPECIAL_BFL == 0x00000001UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_SPECIAL_BFL);
+ LASSERTF(FID_OID_DOT_LUSTRE == 0x00000001UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_DOT_LUSTRE);
+ LASSERTF(FID_OID_DOT_LUSTRE_OBF == 0x00000002UL, "found 0x%.8xUL\n",
+ (unsigned)FID_OID_DOT_LUSTRE_OBF);
+
/* Checks for struct lu_dirent */
LASSERTF((int)sizeof(struct lu_dirent) == 32, "found %lld\n",
(long long)(int)sizeof(struct lu_dirent));
/* Checks for struct lu_dirent */
LASSERTF((int)sizeof(struct lu_dirent) == 32, "found %lld\n",
(long long)(int)sizeof(struct lu_dirent));