mirror of https://gitee.com/openkylin/linux.git
cifs: Change key name to cifs.idmap, misc. clean-up
Change idmap key name from cifs.cifs_idmap to cifs.idmap. Removed unused structure wksidarr and function match_sid(). Handle errors correctly in function init_cifs(). Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
parent
f14bcf71d1
commit
c4aca0c09f
|
@ -33,18 +33,6 @@
|
||||||
#include "cifsproto.h"
|
#include "cifsproto.h"
|
||||||
#include "cifs_debug.h"
|
#include "cifs_debug.h"
|
||||||
|
|
||||||
|
|
||||||
static struct cifs_wksid wksidarr[NUM_WK_SIDS] = {
|
|
||||||
{{1, 0, {0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, "null user"},
|
|
||||||
{{1, 1, {0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0} }, "nobody"},
|
|
||||||
{{1, 1, {0, 0, 0, 0, 0, 5}, {__constant_cpu_to_le32(11), 0, 0, 0, 0} }, "net-users"},
|
|
||||||
{{1, 1, {0, 0, 0, 0, 0, 5}, {__constant_cpu_to_le32(18), 0, 0, 0, 0} }, "sys"},
|
|
||||||
{{1, 2, {0, 0, 0, 0, 0, 5}, {__constant_cpu_to_le32(32), __constant_cpu_to_le32(544), 0, 0, 0} }, "root"},
|
|
||||||
{{1, 2, {0, 0, 0, 0, 0, 5}, {__constant_cpu_to_le32(32), __constant_cpu_to_le32(545), 0, 0, 0} }, "users"},
|
|
||||||
{{1, 2, {0, 0, 0, 0, 0, 5}, {__constant_cpu_to_le32(32), __constant_cpu_to_le32(546), 0, 0, 0} }, "guest"} }
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
/* security id for everyone/world system group */
|
/* security id for everyone/world system group */
|
||||||
static const struct cifs_sid sid_everyone = {
|
static const struct cifs_sid sid_everyone = {
|
||||||
1, 1, {0, 0, 0, 0, 0, 1}, {0} };
|
1, 1, {0, 0, 0, 0, 0, 1}, {0} };
|
||||||
|
@ -131,7 +119,7 @@ cifs_idmap_key_destroy(struct key *key)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct key_type cifs_idmap_key_type = {
|
struct key_type cifs_idmap_key_type = {
|
||||||
.name = "cifs.cifs_idmap",
|
.name = "cifs.idmap",
|
||||||
.instantiate = cifs_idmap_key_instantiate,
|
.instantiate = cifs_idmap_key_instantiate,
|
||||||
.destroy = cifs_idmap_key_destroy,
|
.destroy = cifs_idmap_key_destroy,
|
||||||
.describe = user_describe,
|
.describe = user_describe,
|
||||||
|
@ -435,51 +423,6 @@ cifs_destroy_idmaptrees(void)
|
||||||
spin_unlock(&sidgidlock);
|
spin_unlock(&sidgidlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
int match_sid(struct cifs_sid *ctsid)
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
int num_subauth, num_sat, num_saw;
|
|
||||||
struct cifs_sid *cwsid;
|
|
||||||
|
|
||||||
if (!ctsid)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
for (i = 0; i < NUM_WK_SIDS; ++i) {
|
|
||||||
cwsid = &(wksidarr[i].cifssid);
|
|
||||||
|
|
||||||
/* compare the revision */
|
|
||||||
if (ctsid->revision != cwsid->revision)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* compare all of the six auth values */
|
|
||||||
for (j = 0; j < 6; ++j) {
|
|
||||||
if (ctsid->authority[j] != cwsid->authority[j])
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (j < 6)
|
|
||||||
continue; /* all of the auth values did not match */
|
|
||||||
|
|
||||||
/* compare all of the subauth values if any */
|
|
||||||
num_sat = ctsid->num_subauth;
|
|
||||||
num_saw = cwsid->num_subauth;
|
|
||||||
num_subauth = num_sat < num_saw ? num_sat : num_saw;
|
|
||||||
if (num_subauth) {
|
|
||||||
for (j = 0; j < num_subauth; ++j) {
|
|
||||||
if (ctsid->sub_auth[j] != cwsid->sub_auth[j])
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (j < num_subauth)
|
|
||||||
continue; /* all sub_auth values do not match */
|
|
||||||
}
|
|
||||||
|
|
||||||
cFYI(1, "matching sid: %s\n", wksidarr[i].sidname);
|
|
||||||
return 0; /* sids compare/match */
|
|
||||||
}
|
|
||||||
|
|
||||||
cFYI(1, "No matching sid");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if the two SIDs (roughly equivalent to a UUID for a user or group) are
|
/* if the two SIDs (roughly equivalent to a UUID for a user or group) are
|
||||||
the same returns 1, if they do not match returns 0 */
|
the same returns 1, if they do not match returns 0 */
|
||||||
int compare_sids(const struct cifs_sid *ctsid, const struct cifs_sid *cwsid)
|
int compare_sids(const struct cifs_sid *ctsid, const struct cifs_sid *cwsid)
|
||||||
|
|
|
@ -98,7 +98,6 @@ extern struct key_type cifs_idmap_key_type;
|
||||||
extern const struct cred *root_cred;
|
extern const struct cred *root_cred;
|
||||||
#endif /* KERNEL */
|
#endif /* KERNEL */
|
||||||
|
|
||||||
extern int match_sid(struct cifs_sid *);
|
|
||||||
extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
|
extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
|
||||||
|
|
||||||
#endif /* _CIFSACL_H */
|
#endif /* _CIFSACL_H */
|
||||||
|
|
|
@ -1046,21 +1046,23 @@ init_cifs(void)
|
||||||
#ifdef CONFIG_CIFS_ACL
|
#ifdef CONFIG_CIFS_ACL
|
||||||
rc = init_cifs_idmap();
|
rc = init_cifs_idmap();
|
||||||
if (rc)
|
if (rc)
|
||||||
goto out_destroy_request_bufs;
|
goto out_register_key_type;
|
||||||
#endif /* CONFIG_CIFS_ACL */
|
#endif /* CONFIG_CIFS_ACL */
|
||||||
|
|
||||||
rc = register_filesystem(&cifs_fs_type);
|
rc = register_filesystem(&cifs_fs_type);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto out_destroy_request_bufs;
|
goto out_init_cifs_idmap;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_destroy_request_bufs:
|
out_init_cifs_idmap:
|
||||||
#ifdef CONFIG_CIFS_ACL
|
#ifdef CONFIG_CIFS_ACL
|
||||||
exit_cifs_idmap();
|
exit_cifs_idmap();
|
||||||
|
out_register_key_type:
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CIFS_UPCALL
|
#ifdef CONFIG_CIFS_UPCALL
|
||||||
unregister_key_type(&cifs_spnego_key_type);
|
unregister_key_type(&cifs_spnego_key_type);
|
||||||
|
out_destroy_request_bufs:
|
||||||
#endif
|
#endif
|
||||||
cifs_destroy_request_bufs();
|
cifs_destroy_request_bufs();
|
||||||
out_destroy_mids:
|
out_destroy_mids:
|
||||||
|
|
Loading…
Reference in New Issue