X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fntfs.c;h=a25fc38a016f439b401b4fadc98bcc2872993ac0;hb=61a1a2b71c4811b9d6233a43db74229b9364f0c6;hp=8938dbdea68ed67c3e54d3e095a7b5204c4001e1;hpb=f8210da95888f0060b25dcca2ae299d5c16ff814;p=libguestfs.git diff --git a/daemon/ntfs.c b/daemon/ntfs.c index 8938dbd..a25fc38 100644 --- a/daemon/ntfs.c +++ b/daemon/ntfs.c @@ -1,5 +1,5 @@ /* libguestfs - the guestfsd daemon - * Copyright (C) 2009 Red Hat Inc. + * Copyright (C) 2009-2010 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #include #include +#include #include #include @@ -30,15 +31,13 @@ int optgroup_ntfs3g_available (void) { - int r = access ("/bin/ntfs-3g.probe", X_OK); - return r == 0; + return prog_exists ("ntfs-3g.probe"); } int optgroup_ntfsprogs_available (void) { - int r = access ("/usr/sbin/ntfsresize", X_OK); - return r == 0; + return prog_exists ("ntfsresize"); } int @@ -75,3 +74,23 @@ do_ntfsresize (const char *device) return 0; } + +int +do_ntfsresize_size (const char *device, int64_t size) +{ + char *err; + int r; + + char buf[32]; + snprintf (buf, sizeof buf, "%" PRIi64, size); + + r = command (NULL, &err, "ntfsresize", "-P", "--size", buf, + device, NULL); + if (r == -1) { + reply_with_error ("%s: %s", device, err); + free (err); + return -1; + } + + return 0; +}