mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
switch rbd and libceph to p_log-based primitives
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
3fbb8d5554
commit
2c3f3dc315
@ -6363,10 +6363,9 @@ static int rbd_parse_param(struct fs_parameter *param,
|
||||
token = fs_parse(NULL, &rbd_parameters, param, &result);
|
||||
dout("%s fs_parse '%s' token %d\n", __func__, param->key, token);
|
||||
if (token < 0) {
|
||||
if (token == -ENOPARAM) {
|
||||
return invalf(NULL, "rbd: Unknown parameter '%s'",
|
||||
param->key);
|
||||
}
|
||||
if (token == -ENOPARAM)
|
||||
return inval_plog(&log, "Unknown parameter '%s'",
|
||||
param->key);
|
||||
return token;
|
||||
}
|
||||
|
||||
@ -6379,9 +6378,8 @@ static int rbd_parse_param(struct fs_parameter *param,
|
||||
case Opt_alloc_size:
|
||||
if (result.uint_32 < SECTOR_SIZE)
|
||||
goto out_of_range;
|
||||
if (!is_power_of_2(result.uint_32)) {
|
||||
return invalf(NULL, "rbd: alloc_size must be a power of 2");
|
||||
}
|
||||
if (!is_power_of_2(result.uint_32))
|
||||
return inval_plog(&log, "alloc_size must be a power of 2");
|
||||
opt->alloc_size = result.uint_32;
|
||||
break;
|
||||
case Opt_lock_timeout:
|
||||
@ -6417,7 +6415,7 @@ static int rbd_parse_param(struct fs_parameter *param,
|
||||
return 0;
|
||||
|
||||
out_of_range:
|
||||
return invalf(NULL, "rbd: %s out of range", param->key);
|
||||
return inval_plog(&log, "%s out of range", param->key);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -337,7 +337,7 @@ EXPORT_SYMBOL(ceph_destroy_options);
|
||||
|
||||
/* get secret from key store */
|
||||
static int get_secret(struct ceph_crypto_key *dst, const char *name,
|
||||
struct fs_context *fc)
|
||||
struct p_log *log)
|
||||
{
|
||||
struct key *ukey;
|
||||
int key_err;
|
||||
@ -351,19 +351,19 @@ static int get_secret(struct ceph_crypto_key *dst, const char *name,
|
||||
key_err = PTR_ERR(ukey);
|
||||
switch (key_err) {
|
||||
case -ENOKEY:
|
||||
errorf(fc, "libceph: Failed due to key not found: %s",
|
||||
error_plog(log, "Failed due to key not found: %s",
|
||||
name);
|
||||
break;
|
||||
case -EKEYEXPIRED:
|
||||
errorf(fc, "libceph: Failed due to expired key: %s",
|
||||
error_plog(log, "Failed due to expired key: %s",
|
||||
name);
|
||||
break;
|
||||
case -EKEYREVOKED:
|
||||
errorf(fc, "libceph: Failed due to revoked key: %s",
|
||||
error_plog(log, "Failed due to revoked key: %s",
|
||||
name);
|
||||
break;
|
||||
default:
|
||||
errorf(fc, "libceph: Failed due to key error %d: %s",
|
||||
error_plog(log, "Failed due to key error %d: %s",
|
||||
key_err, name);
|
||||
}
|
||||
err = -EPERM;
|
||||
@ -385,13 +385,14 @@ out:
|
||||
int ceph_parse_mon_ips(const char *buf, size_t len, struct ceph_options *opt,
|
||||
struct fs_context *fc)
|
||||
{
|
||||
struct p_log log = {.prefix = "libceph", .log = fc ? fc->log : NULL};
|
||||
int ret;
|
||||
|
||||
/* ip1[:port1][,ip2[:port2]...] */
|
||||
ret = ceph_parse_ips(buf, buf + len, opt->mon_addr, CEPH_MAX_MON,
|
||||
&opt->num_mon);
|
||||
if (ret) {
|
||||
errorf(fc, "libceph: Failed to parse monitor IPs: %d", ret);
|
||||
error_plog(&log, "Failed to parse monitor IPs: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -404,6 +405,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
{
|
||||
struct fs_parse_result result;
|
||||
int token, err;
|
||||
struct p_log log = {.prefix = "libceph", .log = fc ? fc->log : NULL};
|
||||
|
||||
token = fs_parse(fc, &ceph_parameters, param, &result);
|
||||
dout("%s fs_parse '%s' token %d\n", __func__, param->key, token);
|
||||
@ -417,7 +419,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
&opt->my_addr,
|
||||
1, NULL);
|
||||
if (err) {
|
||||
errorf(fc, "libceph: Failed to parse ip: %d", err);
|
||||
error_plog(&log, "Failed to parse ip: %d", err);
|
||||
return err;
|
||||
}
|
||||
opt->flags |= CEPH_OPT_MYIP;
|
||||
@ -426,7 +428,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
case Opt_fsid:
|
||||
err = parse_fsid(param->string, &opt->fsid);
|
||||
if (err) {
|
||||
errorf(fc, "libceph: Failed to parse fsid: %d", err);
|
||||
error_plog(&log, "Failed to parse fsid: %d", err);
|
||||
return err;
|
||||
}
|
||||
opt->flags |= CEPH_OPT_FSID;
|
||||
@ -445,7 +447,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
return -ENOMEM;
|
||||
err = ceph_crypto_key_unarmor(opt->key, param->string);
|
||||
if (err) {
|
||||
errorf(fc, "libceph: Failed to parse secret: %d", err);
|
||||
error_plog(&log, "Failed to parse secret: %d", err);
|
||||
return err;
|
||||
}
|
||||
break;
|
||||
@ -456,10 +458,10 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
opt->key = kzalloc(sizeof(*opt->key), GFP_KERNEL);
|
||||
if (!opt->key)
|
||||
return -ENOMEM;
|
||||
return get_secret(opt->key, param->string, fc);
|
||||
return get_secret(opt->key, param->string, &log);
|
||||
|
||||
case Opt_osdtimeout:
|
||||
warnf(fc, "libceph: Ignoring osdtimeout");
|
||||
warn_plog(&log, "Ignoring osdtimeout");
|
||||
break;
|
||||
case Opt_osdkeepalivetimeout:
|
||||
/* 0 isn't well defined right now, reject it */
|
||||
@ -530,7 +532,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
|
||||
return 0;
|
||||
|
||||
out_of_range:
|
||||
return invalf(fc, "libceph: %s out of range", param->key);
|
||||
return inval_plog(&log, "%s out of range", param->key);
|
||||
}
|
||||
EXPORT_SYMBOL(ceph_parse_param);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user