Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c12cf63 authored by wang di's avatar wang di Committed by Greg Kroah-Hartman
Browse files

staging: lustre: llite: cache directory striping information



Cache directory striping information that the clients receive
from the metadata servers.

Signed-off-by: default avatarwang 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: default avatarJohn L. Hammond <john.hammond@intel.com>
Reviewed-by: default avatarJinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c55459a2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -173,6 +173,8 @@ struct ll_inode_info {
			 * -- I am the owner of dir statahead.
			 */
			pid_t			   d_opendir_pid;
			/* directory stripe information */
			struct lmv_stripe_md		*d_lmv_md;
		} d;

#define lli_readdir_mutex       u.d.d_readdir_mutex
@@ -180,6 +182,7 @@ struct ll_inode_info {
#define lli_sai		 u.d.d_sai
#define lli_sa_lock	     u.d.d_sa_lock
#define lli_opendir_pid	 u.d.d_opendir_pid
#define lli_lmv_md		u.d.d_lmv_md

		/* for non-directory */
		struct {
+13 −2
Original line number Diff line number Diff line
@@ -2090,11 +2090,22 @@ struct md_op_data *ll_prep_md_op_data(struct md_op_data *op_data,

	ll_i2gids(op_data->op_suppgids, i1, i2);
	op_data->op_fid1 = *ll_inode2fid(i1);
	if (S_ISDIR(i1->i_mode))
		op_data->op_mea1 = ll_i2info(i1)->lli_lmv_md;

	if (i2)
	if (i2) {
		op_data->op_fid2 = *ll_inode2fid(i2);
	else
		if (S_ISDIR(i2->i_mode))
			op_data->op_mea2 = ll_i2info(i2)->lli_lmv_md;
	} else {
		fid_zero(&op_data->op_fid2);
	}

	if (ll_i2sbi(i1)->ll_flags & LL_SBI_64BIT_HASH)
		op_data->op_cli_flags |= CLI_HASH64;

	if (ll_need_32bit_api(ll_i2sbi(i1)))
		op_data->op_cli_flags |= CLI_API32;

	op_data->op_name = name;
	op_data->op_namelen = namelen;