mp_nid in struct md_perm is now a large nid.
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: Id7502a5399191a36550162837cce37d3bfc9797e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50103
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Nathaniel Clark <nclark@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
struct upcall_cache_entry;
struct md_perm {
struct upcall_cache_entry;
struct md_perm {
+ struct lnet_nid mp_nid;
}
for (i = 0; i < data->idd_nperms; i++) {
}
for (i = 0; i < data->idd_nperms; i++) {
- perms[i].mp_nid = data->idd_perms[i].pdd_nid;
+ lnet_nid4_to_nid(data->idd_perms[i].pdd_nid,
+ &perms[i].mp_nid);
perms[i].mp_perm = data->idd_perms[i].pdd_perm;
}
}
perms[i].mp_perm = data->idd_perms[i].pdd_perm;
}
}
__u32 mdt_identity_get_perm(struct md_identity *identity, struct lnet_nid *nid)
{
struct md_perm *perm;
__u32 mdt_identity_get_perm(struct md_identity *identity, struct lnet_nid *nid)
{
struct md_perm *perm;
int i;
if (!identity)
return CFS_SETGRP_PERM;
int i;
if (!identity)
return CFS_SETGRP_PERM;
- if (!nid_is_nid4(nid))
- return CFS_SETGRP_PERM;
- nid4 = lnet_nid_to_nid4(nid);
perm = identity->mi_perms;
/* check exactly matched nid first */
for (i = identity->mi_nperms - 1; i > 0; i--) {
perm = identity->mi_perms;
/* check exactly matched nid first */
for (i = identity->mi_nperms - 1; i > 0; i--) {
- if (perm[i].mp_nid != nid4)
+ if (!nid_same(&perm[i].mp_nid, nid))
continue;
return perm[i].mp_perm;
}
/* check LNET_NID_ANY then */
if ((identity->mi_nperms > 0) &&
continue;
return perm[i].mp_perm;
}
/* check LNET_NID_ANY then */
if ((identity->mi_nperms > 0) &&
- ((perm[0].mp_nid == nid4) || (perm[0].mp_nid == LNET_NID_ANY)))
+ ((nid_same(&perm[0].mp_nid, nid)) ||
+ (LNET_NID_IS_ANY(&perm[0].mp_nid))))
return perm[0].mp_perm;
/* return default last */
return perm[0].mp_perm;
/* return default last */