From patchwork Fri Dec 4 21:57:53 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 64976 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nB4LwA0B024013 for ; Fri, 4 Dec 2009 21:58:10 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757421AbZLDV5s (ORCPT ); Fri, 4 Dec 2009 16:57:48 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757334AbZLDV5s (ORCPT ); Fri, 4 Dec 2009 16:57:48 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58407 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757266AbZLDV5r (ORCPT ); Fri, 4 Dec 2009 16:57:47 -0500 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nB4LvsPC030012 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 4 Dec 2009 16:57:54 -0500 Received: from localhost.localdomain (vpn-8-123.rdu.redhat.com [10.11.8.123]) by int-mx03.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id nB4LvrYL003092 for ; Fri, 4 Dec 2009 16:57:53 -0500 Date: Fri, 4 Dec 2009 16:57:53 -0500 From: Josef Bacik To: linux-btrfs@vger.kernel.org Subject: [RFC] Btrfs-progs: add command to set default subvol Message-ID: <20091204215752.GE7441@localhost.localdomain> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) X-Scanned-By: MIMEDefang 2.67 on 10.5.11.16 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org diff --git a/btrfsctl.c b/btrfsctl.c index 064c0d0..8fc78ba 100644 --- a/btrfsctl.c +++ b/btrfsctl.c @@ -58,6 +58,8 @@ static void print_usage(void) printf("\t-c: forces a single FS sync\n"); printf("\t-D: delete snapshot\n"); printf("\t-l file: listing snapshot/subvolume under a subvolume\n"); + printf("\t-m [tree id] directory: set the default mounted subvolume" + " to the [tree id] or the directory\n"); printf("%s\n", BTRFS_BUILD_VERSION); exit(1); } @@ -266,6 +268,7 @@ int main(int ac, char **av) unsigned long command = 0; int len; char *fullpath; + u64 objectid = 0; if (ac == 2 && strcmp(av[1], "-a") == 0) { fprintf(stderr, "Scanning for Btrfs filesystems\n"); @@ -380,6 +383,8 @@ int main(int ac, char **av) exit(1); } command = BTRFS_IOC_SNAP_LISTING; + } else if (strcmp(av[1], "-m") == 0) { + command = BTRFS_IOC_DEFAULT_SUBVOL; } } if (command == 0) { @@ -410,6 +415,8 @@ int main(int ac, char **av) ret = ioctl(snap_fd, command, &args); } else if (command == BTRFS_IOC_SNAP_LISTING) { ret = btrfs_list_subvolumes(snap_fd, command); + } else if (command == BTRFS_IOC_DEFAULT_SUBVOL) { + ret = ioctl(fd, command, &objectid); } else ret = ioctl(fd, command, &args); if (ret < 0) { diff --git a/ioctl.h b/ioctl.h index 19020cb..70fc15d 100644 --- a/ioctl.h +++ b/ioctl.h @@ -91,4 +91,6 @@ struct btrfs_ioctl_subvol_leaf { struct btrfs_ioctl_vol_args) #define BTRFS_IOC_SNAP_LISTING _IOWR(BTRFS_IOCTL_MAGIC, 16, \ struct btrfs_ioctl_subvol_args) +#define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 17, u64) + #endif