]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/btrfs/super.c
Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed
[net-next-2.6.git] / fs / btrfs / super.c
index 0002e6d1a16fd779c5d08a72adb50b557ae40f05..718b10de2049554eb76d7c6402490e95dbd45081 100644 (file)
@@ -71,6 +71,7 @@ enum {
        Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, Opt_compress,
        Opt_compress_force, Opt_notreelog, Opt_ratio, Opt_flushoncommit,
        Opt_discard, Opt_space_cache, Opt_clear_cache, Opt_err,
+       Opt_user_subvol_rm_allowed,
 };
 
 static match_table_t tokens = {
@@ -96,6 +97,7 @@ static match_table_t tokens = {
        {Opt_discard, "discard"},
        {Opt_space_cache, "space_cache"},
        {Opt_clear_cache, "clear_cache"},
+       {Opt_user_subvol_rm_allowed, "user_subvol_rm_allowed"},
        {Opt_err, NULL},
 };
 
@@ -246,6 +248,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
                        printk(KERN_INFO "btrfs: force clearing of disk cache\n");
                        btrfs_set_opt(info->mount_opt, CLEAR_CACHE);
                        break;
+               case Opt_user_subvol_rm_allowed:
+                       btrfs_set_opt(info->mount_opt, USER_SUBVOL_RM_ALLOWED);
+                       break;
                case Opt_err:
                        printk(KERN_INFO "btrfs: unrecognized mount option "
                               "'%s'\n", p);