Signed-off-by: Anand Jain <anand.j...@oracle.com>
---
 Makefile          |  6 +++++-
 check-mounted.c   | 31 +++++++++++++++++++++++++++++++
 cmds-filesystem.c |  2 +-
 3 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 check-mounted.c

diff --git a/Makefile b/Makefile
index d102dee..c97e6b7 100644
--- a/Makefile
+++ b/Makefile
@@ -159,6 +159,10 @@ btrfs-select-super: $(objects) $(libs) btrfs-select-super.o
        @echo "    [LD]     $@"
        $(Q)$(CC) $(CFLAGS) -o btrfs-select-super $(objects) 
btrfs-select-super.o $(LDFLAGS) $(LIBS)
 
+check-mounted: $(objects) $(libs) check-mounted.o
+       @echo "    [LD]     $@"
+       $(Q)$(CC) $(CFLAGS) -o check-mounted $(objects) check-mounted.o 
$(LDFLAGS) $(LIBS)
+
 btrfstune: $(objects) $(libs) btrfstune.o
        @echo "    [LD]     $@"
        $(Q)$(CC) $(CFLAGS) -o btrfstune $(objects) btrfstune.o $(LDFLAGS) 
$(LIBS)
@@ -205,7 +209,7 @@ clean :
        @echo "Cleaning"
        $(Q)rm -f $(progs) cscope.out *.o .*.d btrfs-convert btrfs-image 
btrfs-select-super \
              btrfs-zero-log btrfstune dir-test ioctl-test quick-test send-test 
btrfs.static btrfsck \
-             version.h \
+             version.h check-mounted\
              $(libs) $(lib_links)
        $(Q)$(MAKE) $(MAKEOPTS) -C man $@
 
diff --git a/check-mounted.c b/check-mounted.c
new file mode 100644
index 0000000..781edec
--- /dev/null
+++ b/check-mounted.c
@@ -0,0 +1,31 @@
+
+#define _XOPEN_SOURCE 500
+#define _GNU_SOURCE 1
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include "kerncompat.h"
+#include "ctree.h"
+#include "disk-io.h"
+#include "print-tree.h"
+#include "transaction.h"
+#include "list.h"
+#include "version.h"
+#include "utils.h"
+
+int main(int ac, char **av)
+{
+       int ret;
+
+       if((ret = check_mounted(av[optind])) < 0) {
+               fprintf(stderr, "Could not check mount status: %s\n", 
strerror(-ret));
+               return ret;
+       } else if(ret) {
+               fprintf(stderr, "%s is currently mounted. Aborting.\n", 
av[optind]);
+               return -EBUSY;
+       }
+       printf("Not mounted\n");
+       return 0;
+}
diff --git a/cmds-filesystem.c b/cmds-filesystem.c
index 2210020..f3d3130 100644
--- a/cmds-filesystem.c
+++ b/cmds-filesystem.c
@@ -446,7 +446,7 @@ static int cmd_defrag(int argc, char **argv)
                exit(1);
        }
 
-       return errors + 20;
+       return errors;
 }
 
 static const char * const cmd_resize_usage[] = {
-- 
1.8.1.227.g44fe835

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to