Matching of the user-supplied bsoflags string against the flags supported by a backing store should test if all user-supplied flags are supported, and not that at least one of them is supported. Signed-off-by: Alexander Nezhinsky <alexandern@xxxxxxxxxxxx> --- usr/target.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/usr/target.c b/usr/target.c index 1a7f355..dd4b358 100644 --- a/usr/target.c +++ b/usr/target.c @@ -450,6 +450,7 @@ int tgt_device_create(int tid, int dev_type, uint64_t lun, char *params, struct backingstore_template *bst; struct it_nexus_lu_info *itn_lu; struct it_nexus *itn; + char strflags[128]; dprintf("%d %" PRIu64 "\n", tid, lun); @@ -518,8 +519,11 @@ int tgt_device_create(int tid, int dev_type, uint64_t lun, char *params, } } - if (lu_bsoflags && !(bst->bs_oflags_supported & lu_bsoflags)) { - eprintf("bsoflags not supported\n"); + if (lu_bsoflags && ((bst->bs_oflags_supported & lu_bsoflags) != lu_bsoflags)) { + eprintf("bsoflags %s not supported by backing store %s\n", + open_flags_to_str(strflags, + (bst->bs_oflags_supported & lu_bsoflags) ^ lu_bsoflags), + bst->bs_name); ret = TGTADM_INVALID_REQUEST; goto out; } -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html