Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
bcache-tools.14286
0003-bcache-tools-Add-parameter-check.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0003-bcache-tools-Add-parameter-check.patch of Package bcache-tools.14286
From fbcfdfc409f37274d00bd730102bc5c20719ea12 Mon Sep 17 00:00:00 2001 From: Shaoxiong Li <dahefanteng@gmail.com> Date: Thu, 13 Sep 2018 14:23:08 +0800 Subject: [PATCH 08/16] bcache-tools: Add parameter check Git-commit: fbcfdfc409f37274d00bd730102bc5c20719ea12 Patch-mainline: bcache-tools-1.1 References: bsc#1139948 Check parameter when using 'bcache set-label' and 'bcache set-cachemode' Signed-off-by: Shaoxiong Li <dahefanteng@gmail.com> Signed-off-by: Coly Li <colyli@suse.de> --- bcache-main.c | 37 ++++++++++++++++++++++++++++++++++++- lib.c | 3 +-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/bcache-main.c b/bcache-main.c index e424535..dd90d50 100644 --- a/bcache-main.c +++ b/bcache-main.c @@ -452,7 +452,7 @@ int attach_both(char *cdev, char *backdev) char buf[100]; ret = detail_dev(backdev, &bd, &cd, &type); - if (ret < 0) + if (ret != 0) return ret; if (type != BCACHE_SB_VERSION_BDEV && type != BCACHE_SB_VERSION_BDEV_WITH_OFFSET) { @@ -613,6 +613,24 @@ int main(int argc, char **argv) fprintf(stderr, "Error:Wrong device name found\n"); return 1; } + struct bdev bd; + struct cdev cd; + int type = 1; + int ret; + + ret = detail_dev(argv[1], &bd, &cd, &type); + if (ret != 0) { + fprintf(stderr, + "This device doesn't exist or failed to receive info from this device\n"); + return ret; + } + if (type != BCACHE_SB_VERSION_BDEV + && type != BCACHE_SB_VERSION_BDEV_WITH_OFFSET) { + fprintf(stderr, + "Only backend device is suppported\n"); + return 1; + } + return set_backdev_cachemode(argv[1], argv[2]); } else if (strcmp(subcmd, "set-label") == 0) { if (argc != 3) return setlabel_usage(); @@ -620,6 +638,23 @@ int main(int argc, char **argv) fprintf(stderr, "Error:Wrong device name found\n"); return 1; } + struct bdev bd; + struct cdev cd; + int type = 5; + int ret; + + ret = detail_dev(argv[1], &bd, &cd, &type); + if (ret != 0) { + fprintf(stderr, + "This device doesn't exist or failed to receive info from this device\n"); + return ret; + } + if (type != BCACHE_SB_VERSION_BDEV + && type != BCACHE_SB_VERSION_BDEV_WITH_OFFSET) { + fprintf(stderr, + "Only backend device is suppported\n"); + return 1; + } if (strlen(argv[2]) >= SB_LABEL_SIZE) { fprintf(stderr, "Label is too long\n"); return 1; diff --git a/lib.c b/lib.c index 6592110..9e69419 100644 --- a/lib.c +++ b/lib.c @@ -669,8 +669,7 @@ int set_label(char *devname, char *label) fd = open(path, O_WRONLY); if (fd < 0) { fprintf(stderr, - "Can't open %s,Make sure the device name is correct\n", - path); + "Please register this device first\n"); return 1; } if (dprintf(fd, "%s\n", label) < 0) { -- 2.25.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor