summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-06-10 10:09:18 -0400
committerDavid Woodhouse <dwmw2@hera.kernel.org>2008-06-10 10:09:18 -0400
commit969c548acb71c594db31f32ff32b737fb8270a90 (patch)
tree98e694c51639a962de3e180c29852a3251f8dde8
parentd8d4df9474ba3596532a4052bc8ad4fe37f717ce (diff)
Add sync and transaction ioctl defs
btrfsctl -c forces a single FS sync The transaction ioctls are unsafe for general use because they can lead to deadlocks if the application is not very careful. But, ceph is experimenting with btrfs as a backing store, and these ioctls are required for testing.
-rw-r--r--btrfsctl.c3
-rw-r--r--ioctl.h9
2 files changed, 12 insertions, 0 deletions
diff --git a/btrfsctl.c b/btrfsctl.c
index e90c6fc5..7e7e79b5 100644
--- a/btrfsctl.c
+++ b/btrfsctl.c
@@ -51,6 +51,7 @@ void print_usage(void)
printf("\t-r [+-]size[gkm] resize the FS\n");
printf("\t-A device scans the device for a Btrfs filesystem\n");
printf("\t-a scans all devices for Btrfs filesystems\n");
+ printf("\t-c forces a single FS sync\n");
exit(1);
}
@@ -115,6 +116,8 @@ int main(int ac, char **av)
exit(1);
}
command = BTRFS_IOC_RESIZE;
+ } else if (strcmp(av[i], "-c") == 0) {
+ command = BTRFS_IOC_SYNC;
}
}
if (command == 0) {
diff --git a/ioctl.h b/ioctl.h
index b0e73f51..85ed35a7 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -36,6 +36,14 @@ struct btrfs_ioctl_vol_args {
struct btrfs_ioctl_vol_args)
#define BTRFS_IOC_SCAN_DEV _IOW(BTRFS_IOCTL_MAGIC, 4, \
struct btrfs_ioctl_vol_args)
+/* trans start and trans end are dangerous, and only for
+ * use by applications that know how to avoid the
+ * resulting deadlocks
+ */
+#define BTRFS_IOC_TRANS_START _IO(BTRFS_IOCTL_MAGIC, 6)
+#define BTRFS_IOC_TRANS_END _IO(BTRFS_IOCTL_MAGIC, 7)
+#define BTRFS_IOC_SYNC _IO(BTRFS_IOCTL_MAGIC, 8)
+
#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int)
#define BTRFS_IOC_ADD_DEV _IOW(BTRFS_IOCTL_MAGIC, 10, \
struct btrfs_ioctl_vol_args)
@@ -43,4 +51,5 @@ struct btrfs_ioctl_vol_args {
struct btrfs_ioctl_vol_args)
#define BTRFS_IOC_BALANCE _IOW(BTRFS_IOCTL_MAGIC, 12, \
struct btrfs_ioctl_vol_args)
+
#endif