From: Peng Tao <bergwolf@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, Fan Yong <fan.yong@intel.com>,
Peng Tao <bergwolf@gmail.com>,
Andreas Dilger <andreas.dilger@intel.com>
Subject: [PATCH v2 05/12] staging/lustre/scrub: OI scrub on OST
Date: Tue, 26 Nov 2013 23:04:39 +0800 [thread overview]
Message-ID: <1385478286-5525-6-git-send-email-bergwolf@gmail.com> (raw)
In-Reply-To: <1385478286-5525-1-git-send-email-bergwolf@gmail.com>
From: Fan Yong <fan.yong@intel.com>
Main part of original patch in Lustre tree
(http://review.whamcloud.com/6669) changes server code and
is unneeded by client. The patch only picks up common
functions and data structures change.
Quoting original commit message here:
"
OI scrub should has the ability to handle kinds of OI, including
both the OI files on MDT and the /O directory on OST.
We trust the FID in LMA for both MDT objects and OST objects. So
if some /O sub-item does not match related LMA, then the /O will
be updated, instead of the LMA.
To guarantee that the OI scrub can run without MDT0 involved for
FLDB, the OST object needs to store some flag in its LMA to tell
OI scrub that it is for an OST object, no need to query the MDT0.
"
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3335
Lustre-change: http://review.whamcloud.com/6669
Signed-off-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Signed-off-by: Peng Tao <bergwolf@gmail.com>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
---
.../lustre/lustre/include/lustre/lustre_idl.h | 7 +++++--
.../staging/lustre/lustre/include/obd_support.h | 1 +
drivers/staging/lustre/lustre/ptlrpc/wiretest.c | 4 ++++
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
index 7dfb925..08da4f3 100644
--- a/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
+++ b/drivers/staging/lustre/lustre/include/lustre/lustre_idl.h
@@ -321,8 +321,11 @@ static inline int range_compare_loc(const struct lu_seq_range *r1,
* xattr.
*/
enum lma_compat {
- LMAC_HSM = 0x00000001,
- LMAC_SOM = 0x00000002,
+ LMAC_HSM = 0x00000001,
+ LMAC_SOM = 0x00000002,
+ LMAC_NOT_IN_OI = 0x00000004, /* the object does NOT need OI mapping */
+ LMAC_FID_ON_OST = 0x00000008, /* For OST-object, its OI mapping is
+ * under /O/<seq>/d<x>. */
};
/**
diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h
index 825a0c9..1748985 100644
--- a/drivers/staging/lustre/lustre/include/obd_support.h
+++ b/drivers/staging/lustre/lustre/include/obd_support.h
@@ -256,6 +256,7 @@ int obd_alloc_fail(const void *ptr, const char *name, const char *type,
#define OBD_FAIL_OSD_SCRUB_FATAL 0x192
#define OBD_FAIL_OSD_FID_MAPPING 0x193
#define OBD_FAIL_OSD_LMA_INCOMPAT 0x194
+#define OBD_FAIL_OSD_COMPAT_INVALID_ENTRY 0x195
#define OBD_FAIL_OST 0x200
#define OBD_FAIL_OST_CONNECT_NET 0x201
diff --git a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c
index e3f02c7..7160a23 100644
--- a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c
+++ b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c
@@ -433,6 +433,10 @@ void lustre_assert_wire_constants(void)
(unsigned)LMAC_HSM);
LASSERTF(LMAC_SOM == 0x00000002UL, "found 0x%.8xUL\n",
(unsigned)LMAC_SOM);
+ LASSERTF(LMAC_NOT_IN_OI == 0x00000004UL, "found 0x%.8xUL\n",
+ (unsigned)LMAC_NOT_IN_OI);
+ LASSERTF(LMAC_FID_ON_OST == 0x00000008UL, "found 0x%.8xUL\n",
+ (unsigned)LMAC_FID_ON_OST);
LASSERTF(OBJ_CREATE == 1, "found %lld\n",
(long long)OBJ_CREATE);
LASSERTF(OBJ_DESTROY == 2, "found %lld\n",
--
1.7.9.5
next prev parent reply other threads:[~2013-11-26 15:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-26 15:04 [PATCH v2 00/12] staging/lustre: sync with extern tree, set 2 Peng Tao
2013-11-26 15:04 ` [PATCH v2 01/12] Revert "staging/lustre/nfs: writing to new files will return ENOENT" Peng Tao
2013-11-26 15:04 ` [PATCH v2 02/12] staging/lustre/llog: MGC to use OSD API for backup logs Peng Tao
2013-11-26 18:33 ` Levente Kurusa
2013-11-26 15:04 ` [PATCH v2 03/12] staging/lustre: constify uuid argument of obd_uuid2str Peng Tao
2013-11-26 15:04 ` [PATCH v2 04/12] staging/lustre: make obd_uuid_equals return bool Peng Tao
2013-11-26 15:04 ` Peng Tao [this message]
2013-11-26 15:04 ` [PATCH v2 06/12] staging/lustre: make code align in lma_incompat Peng Tao
2013-11-26 15:04 ` [PATCH v2 07/12] staging/lustre/llite: don't check for O_CREAT in it_create_mode Peng Tao
2013-11-26 15:04 ` [PATCH v2 08/12] staging/lustre/build: clean up unused variables and dead code Peng Tao
2013-11-26 15:04 ` [PATCH v2 09/12] staging/lustre/build: fix compilation issue with is_compat_task Peng Tao
2013-11-26 15:04 ` [PATCH v2 10/12] staging/lustre/ptlrpc: Fix a crash when dereferencing NULL pointer Peng Tao
2013-11-26 15:04 ` [PATCH v2 11/12] staging/lustre/hsm: Add hsm_release feature Peng Tao
2013-11-26 15:04 ` [PATCH v2 12/12] staging/lustre/llite: extended attribute cache Peng Tao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1385478286-5525-6-git-send-email-bergwolf@gmail.com \
--to=bergwolf@gmail.com \
--cc=andreas.dilger@intel.com \
--cc=fan.yong@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox