X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Flibcfs%2Flibcfs_string.c;h=a3ff59c5970e690cbccfe65b2b2210029c003516;hp=7ba00df7cfaaf286ba61d1c01de7d9907b4aa871;hb=4c9a5762413638cc630b1facfb565dcd765fce1e;hpb=085311dc739903f751d11dc4244aea6316ccb7bd;ds=sidebyside diff --git a/libcfs/libcfs/libcfs_string.c b/libcfs/libcfs/libcfs_string.c index 7ba00df..a3ff59c 100644 --- a/libcfs/libcfs/libcfs_string.c +++ b/libcfs/libcfs/libcfs_string.c @@ -41,7 +41,7 @@ /* Convert a text string to a bitmask */ int cfs_str2mask(const char *str, const char *(*bit2str)(int bit), - int *oldmask, int minmask, int allmask) + int *oldmask, int minmask, int allmask, int defmask) { const char *debugstr; char op = 0; @@ -98,6 +98,15 @@ int cfs_str2mask(const char *str, const char *(*bit2str)(int bit), newmask = allmask; found = 1; } + if (!found && strcasecmp(str, "DEFAULT") == 0) { + if (op == '-') + newmask = (newmask & ~defmask) | minmask; + else if (op == '+') + newmask |= defmask; + else + newmask = defmask; + found = 1; + } if (!found) { CWARN("unknown mask '%.*s'.\n" "mask usage: [+|-] ...\n", len, str);