Skip to content
Permalink
Browse files Browse the repository at this point in the history
libmount: remove support for deleted mount table entries
The "(deleted)" suffix has been originally used by kernel for deleted
mountpoints. Since kernel commit 9d4d65748a5ca26ea8650e50ba521295549bf4e3
(Dec 2014) kernel does not use this suffix for mount stuff in /proc at
all. Let's remove this support from libmount too.

Signed-off-by: Karel Zak <kzak@redhat.com>
  • Loading branch information
karelzak committed Jan 4, 2022
1 parent 355d3ef commit 166e873
Show file tree
Hide file tree
Showing 7 changed files with 1 addition and 40 deletions.
1 change: 0 additions & 1 deletion libmount/docs/libmount-sections.txt
Expand Up @@ -246,7 +246,6 @@ mnt_fs_get_userdata
mnt_fs_get_user_options
mnt_fs_get_vfs_options
mnt_fs_get_vfs_options_all
mnt_fs_is_deleted
mnt_fs_is_kernel
mnt_fs_is_netfs
mnt_fs_is_pseudofs
Expand Down
11 changes: 0 additions & 11 deletions libmount/src/fs.c
Expand Up @@ -651,17 +651,6 @@ int mnt_fs_is_regularfs(struct libmnt_fs *fs)
|| mnt_fs_is_swaparea(fs));
}

/**
* mnt_fs_is_deleted:
* @fs: filesystem
*
* Returns: 1 if the filesystem target is a marked as deleted by kernel
*/
int mnt_fs_is_deleted(struct libmnt_fs *fs)
{
return mnt_fs_get_flags(fs) & MNT_FS_DELETED;
}

/**
* mnt_fs_get_fstype:
* @fs: fstab/mtab/mountinfo entry pointer
Expand Down
1 change: 0 additions & 1 deletion libmount/src/libmount.h.in
Expand Up @@ -512,7 +512,6 @@ extern int mnt_fs_match_options(struct libmnt_fs *fs, const char *options);
extern int mnt_fs_print_debug(struct libmnt_fs *fs, FILE *file);

extern int mnt_fs_is_kernel(struct libmnt_fs *fs);
extern int mnt_fs_is_deleted(struct libmnt_fs *fs);
extern int mnt_fs_is_swaparea(struct libmnt_fs *fs);
extern int mnt_fs_is_netfs(struct libmnt_fs *fs);
extern int mnt_fs_is_pseudofs(struct libmnt_fs *fs);
Expand Down
1 change: 0 additions & 1 deletion libmount/src/libmount.sym
Expand Up @@ -365,5 +365,4 @@ MOUNT_2_37 {

MOUNT_2_38 {
mnt_fs_is_regularfs;
mnt_fs_is_deleted;
} MOUNT_2_37;
1 change: 0 additions & 1 deletion libmount/src/mountP.h
Expand Up @@ -228,7 +228,6 @@ struct libmnt_fs {
#define MNT_FS_SWAP (1 << 3) /* swap device */
#define MNT_FS_KERNEL (1 << 4) /* data from /proc/{mounts,self/mountinfo} */
#define MNT_FS_MERGED (1 << 5) /* already merged data from /run/mount/utab */
#define MNT_FS_DELETED (1 << 6) /* target path in mountinfo contains "(deleted)" */

/*
* mtab/fstab/mountinfo file
Expand Down
7 changes: 0 additions & 7 deletions libmount/src/tab_parse.c
Expand Up @@ -227,13 +227,6 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, const char *s)
goto fail;
}

/* remove "\040(deleted)" suffix */
p = (char *) endswith(fs->target, PATH_DELETED_SUFFIX);
if (p && *p) {
*p = '\0';
fs->flags |= MNT_FS_DELETED;
}

s = skip_separator(s);

/* (6) vfs options (fs-independent) */
Expand Down
19 changes: 1 addition & 18 deletions misc-utils/findmnt.c
Expand Up @@ -55,7 +55,6 @@
enum {
COL_ACTION,
COL_AVAIL,
COL_DELETED,
COL_FREQ,
COL_FSROOT,
COL_FSTYPE,
Expand Down Expand Up @@ -103,7 +102,6 @@ struct colinfo {
static struct colinfo infos[] = {
[COL_ACTION] = { "ACTION", 10, SCOLS_FL_STRICTWIDTH, N_("action detected by --poll") },
[COL_AVAIL] = { "AVAIL", 5, SCOLS_FL_RIGHT, N_("filesystem size available") },
[COL_DELETED] = { "DELETED", 1, SCOLS_FL_RIGHT, N_("filesystem target marked as deleted") },
[COL_FREQ] = { "FREQ", 1, SCOLS_FL_RIGHT, N_("dump(8) period in days [fstab only]") },
[COL_FSROOT] = { "FSROOT", 0.25, SCOLS_FL_NOEXTREMES, N_("filesystem root") },
[COL_FSTYPE] = { "FSTYPE", 0.10, SCOLS_FL_TRUNC, N_("filesystem type") },
Expand Down Expand Up @@ -677,9 +675,6 @@ static char *get_data(struct libmnt_fs *fs, int num)
if (!mnt_fs_is_kernel(fs))
xasprintf(&str, "%d", mnt_fs_get_passno(fs));
break;
case COL_DELETED:
str = xstrdup(mnt_fs_is_deleted(fs) ? "1" : "0");
break;
default:
break;
}
Expand Down Expand Up @@ -1033,9 +1028,6 @@ static int match_func(struct libmnt_fs *fs,
return rc;
}

if ((flags & FL_DELETED) && !mnt_fs_is_deleted(fs))
return rc;

return !rc;
}

Expand Down Expand Up @@ -1304,7 +1296,6 @@ static void __attribute__((__noreturn__)) usage(void)
fputs(_(" -b, --bytes print sizes in bytes rather than in human readable format\n"), out);
fputs(_(" -C, --nocanonicalize don't canonicalize when comparing paths\n"), out);
fputs(_(" -c, --canonicalize canonicalize printed paths\n"), out);
fputs(_(" --deleted print filesystems with mountpoint marked as deleted\n"), out);
fputs(_(" -D, --df imitate the output of df(1)\n"), out);
fputs(_(" -d, --direction <word> direction of search, 'forward' or 'backward'\n"), out);
fputs(_(" -e, --evaluate convert tags (LABEL,UUID,PARTUUID,PARTLABEL) \n"
Expand Down Expand Up @@ -1373,16 +1364,14 @@ int main(int argc, char *argv[])
FINDMNT_OPT_PSEUDO,
FINDMNT_OPT_REAL,
FINDMNT_OPT_VFS_ALL,
FINDMNT_OPT_SHADOWED,
FINDMNT_OPT_DELETED,
FINDMNT_OPT_SHADOWED
};

static const struct option longopts[] = {
{ "all", no_argument, NULL, 'A' },
{ "ascii", no_argument, NULL, 'a' },
{ "bytes", no_argument, NULL, 'b' },
{ "canonicalize", no_argument, NULL, 'c' },
{ "deleted", no_argument, NULL, FINDMNT_OPT_DELETED },
{ "direction", required_argument, NULL, 'd' },
{ "df", no_argument, NULL, 'D' },
{ "evaluate", no_argument, NULL, 'e' },
Expand Down Expand Up @@ -1601,9 +1590,6 @@ int main(int argc, char *argv[])
case FINDMNT_OPT_SHADOWED:
flags |= FL_SHADOWED;
break;
case FINDMNT_OPT_DELETED:
flags |= FL_DELETED;
break;
case 'h':
usage();
case 'V':
Expand Down Expand Up @@ -1776,9 +1762,6 @@ int main(int argc, char *argv[])
case COL_TID:
scols_column_set_json_type(cl, SCOLS_JSON_NUMBER);
break;
case COL_DELETED:
scols_column_set_json_type(cl, SCOLS_JSON_BOOLEAN);
break;
default:
if (fl & SCOLS_FL_WRAP)
scols_column_set_json_type(cl, SCOLS_JSON_ARRAY_STRING);
Expand Down

0 comments on commit 166e873

Please sign in to comment.