From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30413 invoked by alias); 27 May 2009 12:28:35 -0000 Received: (qmail 30405 invoked by alias); 27 May 2009 12:28:34 -0000 X-SWARE-Spam-Status: No, hits=-0.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21,J_CHICKENPOX_35,J_CHICKENPOX_36,J_CHICKENPOX_43,J_CHICKENPOX_66,SPF_HELO_PASS X-Spam-Status: No, hits=-0.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21,J_CHICKENPOX_35,J_CHICKENPOX_36,J_CHICKENPOX_43,J_CHICKENPOX_66,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion2.fedora.phx.redhat.com Subject: gfs2-utils: master - gfs2_tool: Remove df command from gfs2_tool To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: gfs2-utils.git X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 541c621554480a4c0012488336f91aa5fdf68c8c X-Git-Newrev: b72392dd547658891d925c4e47a20f75e6f4d5f6 From: Steven Whitehouse Message-Id: <20090527122809.277DF12020E@lists.fedorahosted.org> Date: Wed, 27 May 2009 12:28:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2009-q2/txt/msg00426.txt.bz2 Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitdiff;h=b72392dd547658891d925c4e47a20f75e6f4d5f6 Commit: b72392dd547658891d925c4e47a20f75e6f4d5f6 Parent: 541c621554480a4c0012488336f91aa5fdf68c8c Author: Steven Whitehouse AuthorDate: Wed May 27 12:19:46 2009 +0100 Committer: Steven Whitehouse CommitterDate: Wed May 27 12:19:46 2009 +0100 gfs2_tool: Remove df command from gfs2_tool As discussed in yesterday's meeting, this removes the obsolete df command from gfs2_tool. There is nothing that gfs2_tool was providing which is not available via the "normal" df command. Signed-off-by: Steven Whitehouse --- gfs2/man/gfs2_tool.8 | 10 -- gfs2/tool/Makefile | 3 +- gfs2/tool/df.c | 258 ------------------------------------------------- gfs2/tool/gfs2_tool.h | 5 - gfs2/tool/main.c | 4 - 5 files changed, 1 insertions(+), 279 deletions(-) diff --git a/gfs2/man/gfs2_tool.8 b/gfs2/man/gfs2_tool.8 index 01bf4f2..1533de7 100644 --- a/gfs2/man/gfs2_tool.8 +++ b/gfs2/man/gfs2_tool.8 @@ -18,13 +18,6 @@ as gfs_tool used to. \fBclearflag\fP \fIFlag\fR \fIFile1\fR \fIFile2\fR \fI...\fR Clear an attribute flag on a file. See \fBsetflag\fP for available flags. .TP -\fBdf\fP \fIMountPoint\fR -Print out a space usage summary of a given filesystem. The information -printed is more detailed than a standard "df". -.\".TP -.\"\fBflush\fP \fIFile\fR -.\"Sync out any dirty data for a file and drop its lock. -.TP \fBfreeze\fP \fIMountPoint\fR Freeze (quiesce) a GFS2 cluster. .TP @@ -106,9 +99,6 @@ Set the value of tuning parameter. Use \fBgettune\fP for a listing of tunable parameters. The mount -oremount command is the preferred way to set the values of tunable parameters. At some future stage, when all parameters can be set via mount, this option will be removed. -.\".TP -.\"\fBstat\fP \fIFile\fR -.\"Print out extended stat information about a file. .TP \fBunfreeze\fP \fIMountPoint\fR Unfreeze a GFS2 cluster. diff --git a/gfs2/tool/Makefile b/gfs2/tool/Makefile index ee607d4..11b8624 100644 --- a/gfs2/tool/Makefile +++ b/gfs2/tool/Makefile @@ -10,8 +10,7 @@ include $(OBJDIR)/make/clean.mk include $(OBJDIR)/make/install.mk include $(OBJDIR)/make/uninstall.mk -OBJS= df.o \ - main.o \ +OBJS= main.o \ misc.o \ ondisk.o \ sb.o \ diff --git a/gfs2/tool/df.c b/gfs2/tool/df.c deleted file mode 100644 index 277525b..0000000 --- a/gfs2/tool/df.c +++ /dev/null @@ -1,258 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#define _(String) gettext(String) - -#define __user -#include - -#include "gfs2_tool.h" -#include "libgfs2.h" - -/** - * anthropomorphize - make a uint64_t number more human - */ -static const char *anthropomorphize(unsigned long long inhuman_value) -{ - const char *symbols = " KMGTPE"; - int i; - unsigned long long val = inhuman_value; - static char out_val[32]; - - memset(out_val, 0, sizeof(out_val)); - for (i = 0; i < 6 && val > 1024; i++) - val /= 1024; - sprintf(out_val, "%llu%c", val, symbols[i]); - return out_val; -} - -/** - * printit - parse out and print values according to the output type - */ -static void printit(unsigned long long block_size, const char *label, - unsigned long long total, unsigned long long used, - unsigned long long freespace, unsigned int percentage) -{ - switch (output_type) { - case OUTPUT_BLOCKS: - printf(" %-15s%-15llu%-15llu%-15llu%u%%\n", - label, total, used, freespace, percentage); - break; - case OUTPUT_K: - printf(" %-15s%-15llu%-15llu%-15llu%u%%\n", - label, (total * block_size) / 1024, - (used * block_size) / 1024, (freespace * block_size) / 1024, - percentage); - break; - case OUTPUT_HUMAN: - /* Need to do three separate printfs here because function - anthropomorphize re-uses the same static space. */ - printf(" %-15s%-15s", label, - anthropomorphize(total * block_size)); - printf("%-15s", anthropomorphize(used * block_size)); - printf("%-15s%u%%\n", anthropomorphize(freespace * block_size), - percentage); - break; - } -} - -/** - * do_df_one - print out information about one filesystem - * @path: the path to the filesystem - * - */ - -static void -do_df_one(char *path) -{ - unsigned int percentage; - unsigned int journals; - uint64_t rgrps; - char *fs; - int statfs_fd; - struct gfs2_sbd sbd; - char buf[GFS2_DEFAULT_BSIZE], statfs_fn[PATH_MAX]; - struct gfs2_statfs_change sc; - - memset(&sbd, 0, sizeof(struct gfs2_sbd)); - sbd.path_name = path; - if (check_for_gfs2(&sbd)) { - if (errno == EINVAL) - fprintf(stderr, _("Not a valid GFS2 mount point: %s\n"), - sbd.path_name); - else - fprintf(stderr, "%s\n", strerror(errno)); - exit(-1); - } - fs = mp2fsname(sbd.path_name); - if (!fs) { - fprintf(stderr, _("Couldn't find GFS2 filesystem mounted at %s\n"), - sbd.path_name); - exit(-1); - } - - sbd.device_fd = open(sbd.device_name, O_RDONLY); - if (sbd.device_fd < 0) - die( _("can't open %s: %s\n"), path, strerror(errno)); - - sbd.bsize = GFS2_DEFAULT_BSIZE; - sbd.jsize = GFS2_DEFAULT_JSIZE; - sbd.rgsize = GFS2_DEFAULT_RGSIZE; - sbd.utsize = GFS2_DEFAULT_UTSIZE; - sbd.qcsize = GFS2_DEFAULT_QCSIZE; - osi_list_init(&sbd.rglist); - init_buf_list(&sbd, &sbd.buf_list, 128 << 20); - init_buf_list(&sbd, &sbd.nvbuf_list, 0xffffffff); - - if (lseek(sbd.device_fd, 0x10 * sbd.bsize, SEEK_SET) != - 0x10 * sbd.bsize) { - fprintf(stderr, _("bad seek: %s from %s:%d: superblock\n"), - strerror(errno), __FUNCTION__, __LINE__); - exit(-1); - } - if (read(sbd.device_fd, buf, sbd.bsize) != sbd.bsize) { - fprintf(stderr, _("bad read: %s from %s:%d: superblock\n"), - strerror(errno), __FUNCTION__, __LINE__); - exit(-1); - } - - gfs2_sb_in(&sbd.sd_sb, buf); /* parse it out into the sb structure */ - sbd.bsize = sbd.sd_sb.sb_bsize; - if (compute_constants(&sbd)) { - fprintf(stderr, _("Bad constants (1)\n")); - exit(-1); - } - - sbd.master_dir = gfs2_load_inode(&sbd, - sbd.sd_sb.sb_master_dir.no_addr); - - gfs2_lookupi(sbd.master_dir, "rindex", 6, &sbd.md.riinode); - gfs2_lookupi(sbd.master_dir, "jindex", 6, &sbd.md.jiinode); - close(sbd.device_fd); - - journals = sbd.md.jiinode->i_di.di_entries - 2; - - rgrps = sbd.md.riinode->i_di.di_size; - if (rgrps % sizeof(struct gfs2_rindex)) - die("bad rindex size\n"); - rgrps /= sizeof(struct gfs2_rindex); - - printf("%s:\n", path); - printf( _(" SB lock proto = \"%s\"\n"), sbd.sd_sb.sb_lockproto); - printf( _(" SB lock table = \"%s\"\n"), sbd.sd_sb.sb_locktable); - printf( _(" SB ondisk format = %u\n"), sbd.sd_sb.sb_fs_format); - printf( _(" SB multihost format = %u\n"), sbd.sd_sb.sb_multihost_format); - printf( _(" Block size = %u\n"), sbd.sd_sb.sb_bsize); - printf( _(" Journals = %u\n"), journals); - printf( _(" Resource Groups = %"PRIu64"\n"), rgrps); - printf( _(" Journal number = %s\n"), get_sysfs(fs, "lock_module/jid")); - - /* Read the master statfs file */ - if (mount_gfs2_meta(&sbd)) { - fprintf(stderr, _("Error mounting GFS2 metafs: %s\n"), - strerror(errno)); - exit(-1); - } - - sprintf(statfs_fn, "%s/statfs", sbd.metafs_path); - statfs_fd = open(statfs_fn, O_RDONLY); - if (read(statfs_fd, buf, sizeof(struct gfs2_statfs_change)) != - sizeof(struct gfs2_statfs_change)) { - fprintf(stderr, _("bad read: %s from %s:%d: superblock\n"), - strerror(errno), __FUNCTION__, __LINE__); - exit(-1); - } - gfs2_statfs_change_in(&sc, (char *)&buf); - - close(statfs_fd); - - cleanup_metafs(&sbd); - - printf("\n"); - switch (output_type) { - case OUTPUT_BLOCKS: - printf(" %-15s%-15s%-15s%-15s%-15s\n", "Type", "Total Blocks", - "Used Blocks", "Free Blocks", "use%"); - break; - case OUTPUT_K: - printf(" %-15s%-15s%-15s%-15s%-15s\n", "Type", "Total K", - "Used K", "Free K", "use%"); - break; - case OUTPUT_HUMAN: - printf(" %-15s%-15s%-15s%-15s%-15s\n", "Type", "Total", - "Used", "Free", "use%"); - break; - } - printf(" ------------------------------------------------------------------------\n"); - - percentage = sc.sc_total ? - (100.0 * (sc.sc_total - sc.sc_free)) / sc.sc_total + 0.5 : 0; - printit(sbd.sd_sb.sb_bsize, "data", sc.sc_total, - sc.sc_total - sc.sc_free, sc.sc_free, percentage); - - percentage = (sc.sc_dinodes + sc.sc_free) ? - (100.0 * sc.sc_dinodes / (sc.sc_dinodes + sc.sc_free)) + 0.5 : - 0; - printit(sbd.sd_sb.sb_bsize, "inodes", sc.sc_dinodes + sc.sc_free, - sc.sc_dinodes, sc.sc_free, percentage); -} - - -/** - * print_df - print out information about filesystems - * @argc: - * @argv: - * - */ - -void -print_df(int argc, char **argv) -{ - if (optind < argc) { - char buf[PATH_MAX]; - - if (!realpath(argv[optind], buf)) - die( _("can't determine real path: %s\n"), strerror(errno)); - - do_df_one(buf); - - return; - } - - { - FILE *file; - char buf[256], device[256], path[256], type[256]; - int first = TRUE; - - file = fopen("/proc/mounts", "r"); - if (!file) - die( _("can't open /proc/mounts: %s\n"), strerror(errno)); - - while (fgets(buf, 256, file)) { - if (sscanf(buf, "%s %s %s", device, path, type) != 3) - continue; - if (strcmp(type, "gfs2") != 0) - continue; - - if (first) - first = FALSE; - else - printf("\n"); - - do_df_one(path); - } - - fclose(file); - } -} diff --git a/gfs2/tool/gfs2_tool.h b/gfs2/tool/gfs2_tool.h index 4fcba9b..11583a0 100644 --- a/gfs2/tool/gfs2_tool.h +++ b/gfs2/tool/gfs2_tool.h @@ -20,11 +20,6 @@ extern int output_type; void print_counters(int argc, char **argv); -/* From df.c */ - -void print_df(int argc, char **argv); - - /* From main.c */ void print_usage(void); diff --git a/gfs2/tool/main.c b/gfs2/tool/main.c index 0e16a22..b1cdded 100644 --- a/gfs2/tool/main.c +++ b/gfs2/tool/main.c @@ -31,8 +31,6 @@ int output_type = OUTPUT_BLOCKS; static const char *usage = { "Clear a flag on a inode\n" " gfs2_tool clearflag flag \n" - "Do a GFS2 specific \"df\":\n" - " gfs2_tool df \n" "Freeze a GFS2 cluster:\n" " gfs2_tool freeze \n" "Get tuneable parameters for a filesystem\n" @@ -173,8 +171,6 @@ int main(int argc, char *argv[]) if (strcmp(action, "clearflag") == 0) set_flag(argc, argv); - else if (strcmp(action, "df") == 0) - print_df(argc, argv); else if (strcmp(action, "freeze") == 0) do_freeze(argc, argv); else if (strcmp(action, "gettune") == 0)