Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1535296
| From | James Simmons <jsimmons@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 06/22] staging: lustre: llog: reset llog bitmap |
| Date | 2016-12-03 02:00 +0100 |
| Message-ID | <sK6Qi-2BA-23@gated-at.bofh.it> (permalink) |
| References | <sK6Qi-2BA-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: wang di <di.wang@intel.com>
Once update request fails due to eviction or other failures,
all of update request in the sending list should return fail,
because after the failure, the update log in the following
request will have wrong llog bitmap.
Signed-off-by: wang di <di.wang@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7039
Reviewed-on: http://review.whamcloud.com/16969
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
drivers/staging/lustre/lustre/obdclass/llog.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/lustre/lustre/obdclass/llog.c b/drivers/staging/lustre/lustre/obdclass/llog.c
index ae63047..65e6ce6 100644
--- a/drivers/staging/lustre/lustre/obdclass/llog.c
+++ b/drivers/staging/lustre/lustre/obdclass/llog.c
@@ -114,6 +114,7 @@ static int llog_read_header(const struct lu_env *env,
rc = lop->lop_read_header(env, handle);
if (rc == LLOG_EEMPTY) {
struct llog_log_hdr *llh = handle->lgh_hdr;
+ size_t len;
/* lrh_len should be initialized in llog_init_handle */
handle->lgh_last_idx = 0; /* header is record with index 0 */
@@ -127,6 +128,12 @@ static int llog_read_header(const struct lu_env *env,
memcpy(&llh->llh_tgtuuid, uuid,
sizeof(llh->llh_tgtuuid));
llh->llh_bitmap_offset = offsetof(typeof(*llh), llh_bitmap);
+ /*
+ * Since update llog header might also call this function,
+ * let's reset the bitmap to 0 here
+ */
+ len = llh->llh_hdr.lrh_len - llh->llh_bitmap_offset;
+ memset(LLOG_HDR_BITMAP(llh), 0, len - sizeof(llh->llh_tail));
ext2_set_bit(0, LLOG_HDR_BITMAP(llh));
LLOG_HDR_TAIL(llh)->lrt_len = llh->llh_hdr.lrh_len;
LLOG_HDR_TAIL(llh)->lrt_index = llh->llh_hdr.lrh_index;
--
1.7.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/22] Next batch of missing work for upstream client James Simmons <jsimmons@infradead.org> - 2016-12-03 02:00 +0100
[PATCH 06/22] staging: lustre: llog: reset llog bitmap James Simmons <jsimmons@infradead.org> - 2016-12-03 02:00 +0100
[PATCH 13/22] staging: lustre: statahead: set sai_index_wait with lli_sa_lock held James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 19/22] staging: lustre: llite: ll_dir_ioctl cleanup of redundant comparisons James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 17/22] staging: lustre: clio: remove mtime check in vvp_io_fault_start() James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 12/22] staging: lustre: libcfs: report hnode value for cfs_hash_putref James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 15/22] staging: lustre: rpc: increase bulk size James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 18/22] staging: lustre: import: don't reconnect during connect interpret James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 16/22] staging: lustre: llite: Invoke file_update_time in page_mkwrite James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 09/22] staging: lustre: llite: Add client mount opt to ignore suppress_pings James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 22/22] staging: lustre: libcfs: remove lnet upcall code James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 21/22] staging: lustre: remove set but unused variables James Simmons <jsimmons@infradead.org> - 2016-12-03 02:10 +0100
[PATCH 14/22] staging: lustre: obd: add callback for llog_cat_process_or_fork James Simmons <jsimmons@infradead.org> - 2016-12-03 02:20 +0100
Re: [PATCH 14/22] staging: lustre: obd: add callback for llog_cat_process_or_fork Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-06 11:10 +0100
[PATCH 07/22] staging: lustre: obdclass: lu_site_purge() to handle purge-all James Simmons <jsimmons@infradead.org> - 2016-12-03 02:20 +0100
[PATCH 20/22] staging: lustre: osc: set lock data for readahead lock James Simmons <jsimmons@infradead.org> - 2016-12-03 02:30 +0100
Re: [PATCH 00/22] Next batch of missing work for upstream client Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-06 11:20 +0100
csiph-web