@@ -28,6 +28,8 @@
#include <linux/limits.h>
#include <getopt.h>
+#include <btrfsutil.h>
+
#include "kerncompat.h"
#include "ctree.h"
#include "utils.h"
@@ -813,25 +815,16 @@ static const char * const cmd_filesystem_sync_usage[] = {
static int cmd_filesystem_sync(int argc, char **argv)
{
- int fd, res;
- char *path;
- DIR *dirstream = NULL;
+ enum btrfs_util_error err;
clean_args_no_options(argc, argv, cmd_filesystem_sync_usage);
if (check_argc_exact(argc - optind, 1))
usage(cmd_filesystem_sync_usage);
- path = argv[optind];
-
- fd = btrfs_open_dir(path, &dirstream, 1);
- if (fd < 0)
- return 1;
-
- res = ioctl(fd, BTRFS_IOC_SYNC);
- close_file_or_dir(fd, dirstream);
- if( res < 0 ){
- error("sync ioctl failed on '%s': %m", path);
+ err = btrfs_util_sync(argv[optind]);
+ if (err) {
+ error_btrfs_util(err);
return 1;
}
@@ -20,6 +20,8 @@
#include <unistd.h>
#include <getopt.h>
+#include <btrfsutil.h>
+
#include "ctree.h"
#include "ioctl.h"
@@ -299,6 +301,7 @@ static int cmd_qgroup_show(int argc, char **argv)
int filter_flag = 0;
unsigned unit_mode;
int sync = 0;
+ enum btrfs_util_error err;
struct btrfs_qgroup_comparer_set *comparer_set;
struct btrfs_qgroup_filter_set *filter_set;
@@ -372,9 +375,10 @@ static int cmd_qgroup_show(int argc, char **argv)
}
if (sync) {
- ret = ioctl(fd, BTRFS_IOC_SYNC);
- if (ret < 0)
- warning("sync ioctl failed on '%s': %m", path);
+ err = btrfs_util_sync_fd(fd);
+ if (err)
+ warning("sync ioctl failed on '%s': %s", path,
+ strerror(errno));
}
if (filter_flag) {
@@ -28,6 +28,8 @@
#include <uuid/uuid.h>
#include <linux/magic.h>
+#include <btrfsutil.h>
+
#include "kerncompat.h"
#include "ioctl.h"
#include "qgroup.h"
@@ -219,12 +221,18 @@ out:
static int wait_for_commit(int fd)
{
- int ret;
+ enum btrfs_util_error err;
+ uint64_t transid;
- ret = ioctl(fd, BTRFS_IOC_START_SYNC, NULL);
- if (ret < 0)
- return ret;
- return ioctl(fd, BTRFS_IOC_WAIT_SYNC, NULL);
+ err = btrfs_util_start_sync_fd(fd, &transid);
+ if (err)
+ return -1;
+
+ err = btrfs_util_wait_sync_fd(fd, transid);
+ if (err)
+ return -1;
+
+ return 0;
}
static const char * const cmd_subvol_delete_usage[] = {
@@ -911,6 +919,7 @@ static int cmd_subvol_find_new(int argc, char **argv)
char *subvol;
u64 last_gen;
DIR *dirstream = NULL;
+ enum btrfs_util_error err;
clean_args_no_options(argc, argv, cmd_subvol_find_new_usage);
@@ -934,9 +943,9 @@ static int cmd_subvol_find_new(int argc, char **argv)
if (fd < 0)
return 1;
- ret = ioctl(fd, BTRFS_IOC_SYNC);
- if (ret < 0) {
- error("sync ioctl failed on '%s': %m", subvol);
+ err = btrfs_util_sync_fd(fd);
+ if (err) {
+ error_btrfs_util(err);
close_file_or_dir(fd, dirstream);
return 1;
}