7 const char swapoff_usage[] = "swapoff block-device\n"
9 "\tStop swapping virtual memory pages on the given device.\n";
12 swapoff_fn(const struct FileInfo * i)
14 struct mntent entries[100];
16 FILE * swapsTable = setmntent("/etc/swaps", "r");
19 if (!(swapoff(i->source))) {
20 if ( swapsTable == 0 ) {
21 fprintf(stderr, "/etc/swaps: %s\n", strerror(errno));
24 while ( (m = getmntent(swapsTable)) != 0 ) {
25 entries[count].mnt_fsname = strdup(m->mnt_fsname);
26 entries[count].mnt_dir = strdup(m->mnt_dir);
27 entries[count].mnt_type = strdup(m->mnt_type);
28 entries[count].mnt_opts = strdup(m->mnt_opts);
29 entries[count].mnt_freq = m->mnt_freq;
30 entries[count].mnt_passno = m->mnt_passno;
33 endmntent(swapsTable);
34 if ( (swapsTable = setmntent("/etc/swaps", "w")) ) {
36 for ( id = 0; id < count; id++ ) {
38 (strcmp(entries[id].mnt_fsname, i->source)==0
39 ||strcmp(entries[id].mnt_dir, i->source)==0);
43 addmntent(swapsTable, &entries[id]);
45 endmntent(swapsTable);
47 else if ( errno != EROFS )
48 fprintf(stderr, "/etc/swaps: %s\n", strerror(errno));