diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2016-04-13 14:15:50 +0200 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-04-28 10:07:43 +0200 |
commit | d3767f0faeda5abdf205f947ae912d48dc70fa06 (patch) | |
tree | a8d2c8b2cb37d4d690fce322890de25247107215 /drivers/block | |
parent | 811c6688774613a78bfa020f64b570b73f6974c8 (diff) | |
download | linux-stable-d3767f0faeda5abdf205f947ae912d48dc70fa06.tar.gz linux-stable-d3767f0faeda5abdf205f947ae912d48dc70fa06.tar.bz2 linux-stable-d3767f0faeda5abdf205f947ae912d48dc70fa06.zip |
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>
Diffstat (limited to 'drivers/block')
-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, __le64 features; __le64 incompat; } __attribute__ ((packed)) features_buf = { 0 }; - u64 incompat; + u64 unsup; int ret; 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, if (ret < sizeof (features_buf)) return -ERANGE; - incompat = le64_to_cpu(features_buf.incompat); - if (incompat & ~RBD_FEATURES_SUPPORTED) + unsup = le64_to_cpu(features_buf.incompat) & ~RBD_FEATURES_SUPPORTED; + if (unsup) { + rbd_warn(rbd_dev, "image uses unsupported features: 0x%llx", + unsup); return -ENXIO; + } *snap_features = le64_to_cpu(features_buf.features); |