Message ID | 53D1F65A.7030606@jp.fujitsu.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Fri, Jul 25, 2014 at 03:16:58PM +0900, Satoru Takeuchi wrote: > From: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> > > There are many duplicated codes to check if the given string is > correct subvolume name. Introduce test_issubvolname() for this > purpose for simplicity. Please move it to utils.c -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi David, (2014/07/29 22:32), David Sterba wrote: > On Fri, Jul 25, 2014 at 03:16:58PM +0900, Satoru Takeuchi wrote: >> From: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> >> >> There are many duplicated codes to check if the given string is >> correct subvolume name. Introduce test_issubvolname() for this >> purpose for simplicity. > > Please move it to utils.c OK, I'll do. In addition, how about moving test_isdir() and test_issubvolume() to utils.c too? These are also utility functions. Thanks, Satoru > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jul 30, 2014 at 11:58:37AM +0900, Satoru Takeuchi wrote: > Hi David, > > (2014/07/29 22:32), David Sterba wrote: > >On Fri, Jul 25, 2014 at 03:16:58PM +0900, Satoru Takeuchi wrote: > >>From: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> > >> > >>There are many duplicated codes to check if the given string is > >>correct subvolume name. Introduce test_issubvolname() for this > >>purpose for simplicity. > > > >Please move it to utils.c > > OK, I'll do. In addition, how about moving test_isdir() and > test_issubvolume() to utils.c too? These are also utility functions. Yes, makes sense. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/cmds-subvolume.c b/cmds-subvolume.c index 639fb10..b7bfb3e 100644 --- a/cmds-subvolume.c +++ b/cmds-subvolume.c @@ -43,6 +43,18 @@ static const char * const subvolume_cmd_group_usage[] = { }; /* + * test if name is a correct subvolume name + * this function return + * 0-> name is not a correct subvolume name + * 1-> name is a correct subvolume name + */ +static int test_issubvolname(char *name) +{ + return name[0] != '\0' && !strchr(name, '/') && + strcmp(name, ".") && strcmp(name, ".."); +} + +/* * test if path is a directory * this function return * 0-> path exists but it is not a directory @@ -127,8 +139,7 @@ static int cmd_subvol_create(int argc, char **argv) dupdir = strdup(dst); dstdir = dirname(dupdir); - if (!strcmp(newname, ".") || !strcmp(newname, "..") || - strchr(newname, '/') ){ + if (!test_issubvolname(newname)) { fprintf(stderr, "ERROR: uncorrect subvolume name ('%s')\n", newname); goto out; @@ -302,8 +313,7 @@ again: vname = basename(dupvname); free(cpath); - if (!strcmp(vname, ".") || !strcmp(vname, "..") || - strchr(vname, '/')) { + if (!test_issubvolname(vname)) { fprintf(stderr, "ERROR: incorrect subvolume name ('%s')\n", vname); ret = 1; @@ -711,8 +721,7 @@ static int cmd_snapshot(int argc, char **argv) dstdir = dirname(dupdir); } - if (!strcmp(newname, ".") || !strcmp(newname, "..") || - strchr(newname, '/') ){ + if (!test_issubvolname(newname)) { fprintf(stderr, "ERROR: incorrect snapshot name ('%s')\n", newname); goto out;