Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1464058
| From | James Simmons <jsimmons@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 01/80] staging: lustre: llite: add md_op_data parameter to ll_get_dir_page |
| Date | 2016-08-16 22:20 +0200 |
| Message-ID | <s6T06-7HZ-17@gated-at.bofh.it> (permalink) |
| References | <s6T05-7HZ-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: wang di <di.wang@intel.com>
Pass in struct md_op_data for ll_get_dir_page function.
Signed-off-by: wang di <di.wang@intel.com>
Reviewed-on: http://review.whamcloud.com/7043
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-3531
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
drivers/staging/lustre/lustre/llite/dir.c | 8 ++++----
.../staging/lustre/lustre/llite/llite_internal.h | 4 ++--
drivers/staging/lustre/lustre/llite/statahead.c | 15 +++++++++++----
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c
index 031c9e4..82c7f88 100644
--- a/drivers/staging/lustre/lustre/llite/dir.c
+++ b/drivers/staging/lustre/lustre/llite/dir.c
@@ -322,8 +322,8 @@ static struct page *ll_dir_page_locate(struct inode *dir, __u64 *hash,
return page;
}
-struct page *ll_get_dir_page(struct inode *dir, __u64 hash,
- struct ll_dir_chain *chain)
+struct page *ll_get_dir_page(struct inode *dir, struct md_op_data *op_data,
+ __u64 hash, struct ll_dir_chain *chain)
{
ldlm_policy_data_t policy = {.l_inodebits = {MDS_INODELOCK_UPDATE} };
struct address_space *mapping = dir->i_mapping;
@@ -503,7 +503,7 @@ int ll_dir_read(struct inode *inode, __u64 *ppos, struct md_op_data *op_data,
ll_dir_chain_init(&chain);
- page = ll_get_dir_page(inode, pos, &chain);
+ page = ll_get_dir_page(inode, op_data, pos, &chain);
while (rc == 0 && !done) {
struct lu_dirpage *dp;
@@ -585,7 +585,7 @@ int ll_dir_read(struct inode *inode, __u64 *ppos, struct md_op_data *op_data,
le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
next = pos;
- page = ll_get_dir_page(inode, pos,
+ page = ll_get_dir_page(inode, op_data, pos,
&chain);
}
}
diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h
index dc15957..fc0c72c 100644
--- a/drivers/staging/lustre/lustre/llite/llite_internal.h
+++ b/drivers/staging/lustre/lustre/llite/llite_internal.h
@@ -651,8 +651,8 @@ void ll_rw_stats_tally(struct ll_sb_info *sbi, pid_t pid,
void ll_release_page(struct page *page, int remove);
extern const struct file_operations ll_dir_operations;
extern const struct inode_operations ll_dir_inode_operations;
-struct page *ll_get_dir_page(struct inode *dir, __u64 hash,
- struct ll_dir_chain *chain);
+struct page *ll_get_dir_page(struct inode *dir, struct md_op_data *op_data,
+ __u64 hash, struct ll_dir_chain *chain);
int ll_dir_read(struct inode *inode, __u64 *ppos, struct md_op_data *op_data,
struct dir_context *ctx);
diff --git a/drivers/staging/lustre/lustre/llite/statahead.c b/drivers/staging/lustre/lustre/llite/statahead.c
index 54ed52e..1b222c7 100644
--- a/drivers/staging/lustre/lustre/llite/statahead.c
+++ b/drivers/staging/lustre/lustre/llite/statahead.c
@@ -1067,7 +1067,7 @@ static int ll_statahead_thread(void *arg)
wake_up(&thread->t_ctl_waitq);
ll_dir_chain_init(&chain);
- page = ll_get_dir_page(dir, pos, &chain);
+ page = ll_get_dir_page(dir, op_data, pos, &chain);
while (1) {
struct lu_dirpage *dp;
@@ -1232,7 +1232,7 @@ do_it:
ll_release_page(page, le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
sai->sai_in_readpage = 1;
- page = ll_get_dir_page(dir, pos, &chain);
+ page = ll_get_dir_page(dir, op_data, pos, &chain);
sai->sai_in_readpage = 0;
}
}
@@ -1344,13 +1344,19 @@ static int is_first_dirent(struct inode *dir, struct dentry *dentry)
{
struct ll_dir_chain chain;
const struct qstr *target = &dentry->d_name;
+ struct md_op_data *op_data;
struct page *page;
__u64 pos = 0;
int dot_de;
int rc = LS_NONE_FIRST_DE;
+ op_data = ll_prep_md_op_data(NULL, dir, dir, NULL, 0, 0,
+ LUSTRE_OPC_ANY, dir);
+ if (IS_ERR(op_data))
+ return PTR_ERR(op_data);
+
ll_dir_chain_init(&chain);
- page = ll_get_dir_page(dir, pos, &chain);
+ page = ll_get_dir_page(dir, op_data, pos, &chain);
while (1) {
struct lu_dirpage *dp;
@@ -1438,12 +1444,13 @@ static int is_first_dirent(struct inode *dir, struct dentry *dentry)
*/
ll_release_page(page, le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
- page = ll_get_dir_page(dir, pos, &chain);
+ page = ll_get_dir_page(dir, op_data, pos, &chain);
}
}
out:
ll_dir_chain_fini(&chain);
+ ll_finish_md_op_data(op_data);
return rc;
}
--
1.7.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/80] staging: lustre: majority of missing fixes for 2.6 release James Simmons <jsimmons@infradead.org> - 2016-08-16 22:20 +0200 [PATCH 01/80] staging: lustre: llite: add md_op_data parameter to ll_get_dir_page James Simmons <jsimmons@infradead.org> - 2016-08-16 22:20 +0200 [PATCH 72/80] staging: lustre: obd: validate open handle cookies James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 14/80] staging: lustre: delete striped directory James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 42/80] staging: lustre: llite: validate names James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 64/80] staging: lustre: ptlrpc: add OBD_CONNECT_UNLINK_CLOSE flag James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 75/80] staging: lustre: llite: set op_max_pages James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 54/80] staging: lustre: llite: set dir LOV xattr length variable James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 45/80] staging: lustre: llite: Fix the deadlock in balance_dirty_pages() James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 60/80] staging: lustre: ldlm: improve ldlm_lock_create() return value James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 80/80] staging: lustre: lnet: Stop Infinite CON RACE Condition James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 73/80] staging: lustre: lmv: build error with gcc 4.7.0 20110509 James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 49/80] staging: lustre: lmv: validate lock with correct stripe FID James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 53/80] staging: lustre: obd: rename lsr_padding to lsr_valid James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 56/80] staging: lustre: clio: Reduce memory overhead of per-page allocation James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 74/80] staging: lustre: obd: implement md_read_page James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 26/80] staging: lustre: use bool for several function in lustre_idl.h/lustre_fid.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 13/80] staging: lustre: llite: fix "getdirstripe" to show stripe info James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 58/80] staging: lustre: mdc: always use D_INFO for debug info when mdc_put_rpc_lock fails James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 68/80] staging: lustre: lmv: build master LMV EA dynamically build via readdir James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 19/80] staging: lustre: libcfs: Only dump log once per sec. to avoid EEXIST James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 57/80] staging: lustre: osc: revise unstable pages accounting James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 66/80] staging: lustre: lmv: try all stripes for unknown hash functions James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 52/80] staging: lustre: llite: use the correct mode for striped directory James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 59/80] staging: lustre: fld: add fld description documentation James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 34/80] staging: lustre: lmv: rename request to preq in lmv_getattr_name() James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 15/80] staging: lustre: obdclass: fix lmd_parse() to handle comma-separated NIDs James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 51/80] staging: lustre: lmv: Match MDT where the FID locates first James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 61/80] staging: lustre: obdclass: compile issues with variable not being initialized James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 76/80] staging: lustre: lnet: Do not drop message when shutting down LNet James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 46/80] staging: lustre: llite: Change readdir BRW metrics James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 41/80] staging: lustre: lmv: separate master object with master stripe James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 71/80] staging: lustre: llite: remove assert for acl refcount James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 70/80] staging: lustre: include: fix one off errors in lustre_id.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 47/80] staging: lustre: uapi: reduce scope of lustre_idl.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 77/80] staging: lustre: lnet: Correct position of lnet_ni_decref() James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 62/80] staging: lustre: obd: limit lu_object cache James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 63/80] staging: lustre: fid: do open-by-fid by default James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 07/80] staging: lustre: lmv: remove unused lmv_get_mea function James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 67/80] staging: lustre: ptlrpc: request gets stuck in UNREGISTERING phase James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 50/80] staging: lustre: lov: new pattern flag for partially repaired file James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 79/80] staging: lustre: lnet: lock improvement for ko2iblnd James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 04/80] staging: lustre: llite: pass inode to ll_release_page James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 28/80] staging: lustre: lmv: access lum_stripe_offset as little endian James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 32/80] staging: lustre: lov: handle the case of stripe size is not power 2 James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 65/80] staging: lustre: llog: keep llog ctxt indices constant James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 17/80] staging: lustre: add ability to migrate inodes. James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 48/80] staging: lustre: llite: a few fixes about readdir of striped dir. James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 69/80] staging: lustre: osc: Automatically increase the max_dirty_mb James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 78/80] staging: lustre: lnet: make connection more stable with packet loss James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 43/80] staging: lustre: llite: fix inconsistencies of root squash feature James Simmons <jsimmons@infradead.org> - 2016-08-16 22:30 +0200 [PATCH 30/80] staging: lustre: lmv: Ensure lmv_intent_lookup cleans up reqp James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 40/80] staging: lustre: ptlrpc: Early replies need to honor at_max James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 37/80] staging: lustre: ldlm: flock completion fixes. James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 11/80] staging: lustre: lmv: replace obd_free_memmd with lmv_free_memmd James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 39/80] staging: lustre: llite: add error handler in inode prepare phase James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 21/80] staging: lustre: osc: allow to call brw_commit() multiple times James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 27/80] staging: lustre: simplify inline functions in lustre_fid.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 02/80] staging: lustre: llite: remove comment from ll_dir_read James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 29/80] staging: lustre: lmv: lookup remote migrating object in LMV James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 20/80] staging: lustre: llite: enable clients to inject error for lfsck James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 18/80] staging: lustre: lmv: fix issue found by Klocwork Insight tool James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 25/80] staging: lustre: const correct FID/OSTID/... helpers James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 10/80] staging: lustre: lmv: remove lmv_get_easize James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 08/80] staging: lustre: lmv: remove duplicate MAX_HASH_* James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 22/80] staging: lustre: llite: a few fixes for migration. James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 33/80] staging: lustre: lmv: cleanup req in lmv_getattr_name() James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 06/80] staging: lustre: mdc: don't take rpc lock for readdir case James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 03/80] staging: lustre: llite: style cleanup for llite_internal.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 16/80] staging: lustre: obdclass: bug fixes for lu_device_type handling James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 24/80] staging: lustre: don't need to const __u64 parameters for lustre_idl.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 36/80] staging: lustre: reorder LOV_MAGIC_* definition James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 38/80] staging: lustre: move ioctls to lustre_ioctl.h James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 35/80] staging: lustre: obdclass: unified flow control interfaces James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 09/80] staging: lustre: lmv: change handling of lmv striping information James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 23/80] staging: lustre: mdc: fixup MDS_SWAP_LAYOUTS ELC handling James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 31/80] staging: lustre: llite: avoid a deadlock in page write James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200 [PATCH 44/80] staging: lustre: Remove static declaration in anonymous union James Simmons <jsimmons@infradead.org> - 2016-08-16 22:40 +0200
csiph-web