diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2016-04-13 08:15:50 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-04-28 04:07:43 -0400 |
commit | d3767f0faeda5abdf205f947ae912d48dc70fa06 (patch) | |
tree | a8d2c8b2cb37d4d690fce322890de25247107215 | |
parent | 811c6688774613a78bfa020f64b570b73f6974c8 (diff) |
rbd: report unsupported features to syslog
... instead of just returning an error.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-rw-r--r-- | drivers/block/rbd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 25d22da47f6e..0ede6d7e2568 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c | |||
@@ -4183,7 +4183,7 @@ static int _rbd_dev_v2_snap_features(struct rbd_device *rbd_dev, u64 snap_id, | |||
4183 | __le64 features; | 4183 | __le64 features; |
4184 | __le64 incompat; | 4184 | __le64 incompat; |
4185 | } __attribute__ ((packed)) features_buf = { 0 }; | 4185 | } __attribute__ ((packed)) features_buf = { 0 }; |
4186 | u64 incompat; | 4186 | u64 unsup; |
4187 | int ret; | 4187 | int ret; |
4188 | 4188 | ||
4189 | ret = rbd_obj_method_sync(rbd_dev, rbd_dev->header_name, | 4189 | ret = rbd_obj_method_sync(rbd_dev, rbd_dev->header_name, |
@@ -4196,9 +4196,12 @@ static int _rbd_dev_v2_snap_features(struct rbd_device *rbd_dev, u64 snap_id, | |||
4196 | if (ret < sizeof (features_buf)) | 4196 | if (ret < sizeof (features_buf)) |
4197 | return -ERANGE; | 4197 | return -ERANGE; |
4198 | 4198 | ||
4199 | incompat = le64_to_cpu(features_buf.incompat); | 4199 | unsup = le64_to_cpu(features_buf.incompat) & ~RBD_FEATURES_SUPPORTED; |
4200 | if (incompat & ~RBD_FEATURES_SUPPORTED) | 4200 | if (unsup) { |
4201 | rbd_warn(rbd_dev, "image uses unsupported features: 0x%llx", | ||
4202 | unsup); | ||
4201 | return -ENXIO; | 4203 | return -ENXIO; |
4204 | } | ||
4202 | 4205 | ||
4203 | *snap_features = le64_to_cpu(features_buf.features); | 4206 | *snap_features = le64_to_cpu(features_buf.features); |
4204 | 4207 | ||