diff options
author | Karel Zak | 2018-09-14 15:41:39 +0200 |
---|---|---|
committer | Karel Zak | 2018-09-14 15:41:39 +0200 |
commit | cfb715ed1d9df215a8fc5d8f887048d46019c2cc (patch) | |
tree | 5fab5829ed2d879c3ab7c8abd3f5026fe2992b3e /misc-utils/lsblk.c | |
parent | lsblk: add lsblk.h (diff) | |
download | kernel-qcow2-util-linux-cfb715ed1d9df215a8fc5d8f887048d46019c2cc.tar.gz kernel-qcow2-util-linux-cfb715ed1d9df215a8fc5d8f887048d46019c2cc.tar.xz kernel-qcow2-util-linux-cfb715ed1d9df215a8fc5d8f887048d46019c2cc.zip |
lsblk: move mount stuff to lsblk-mnt.c
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/lsblk.c')
-rw-r--r-- | misc-utils/lsblk.c | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index 75ddd70ee..de31f3832 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -245,9 +245,6 @@ static size_t nexcludes; static int includes[256]; static size_t nincludes; -static struct libmnt_table *mtab, *swaps; -static struct libmnt_cache *mntcache; - #ifdef HAVE_LIBUDEV static struct udev *udev; #endif @@ -396,106 +393,6 @@ static char *get_device_path(struct blkdev_cxt *cxt) return xstrdup(path); } -static int table_parser_errcb(struct libmnt_table *tb __attribute__((__unused__)), - const char *filename, int line) -{ - if (filename) - warnx(_("%s: parse error at line %d -- ignored"), filename, line); - return 1; -} - -static int is_active_swap(const char *filename) -{ - if (!swaps) { - swaps = mnt_new_table(); - if (!swaps) - return 0; - if (!mntcache) - mntcache = mnt_new_cache(); - - mnt_table_set_parser_errcb(swaps, table_parser_errcb); - mnt_table_set_cache(swaps, mntcache); - - if (!lsblk->sysroot) - mnt_table_parse_swaps(swaps, NULL); - else { - char buf[PATH_MAX]; - snprintf(buf, sizeof(buf), "%s" _PATH_PROC_SWAPS, lsblk->sysroot); - mnt_table_parse_swaps(swaps, buf); - } - } - - return mnt_table_find_srcpath(swaps, filename, MNT_ITER_BACKWARD) != NULL; -} - -static char *get_device_mountpoint(struct blkdev_cxt *cxt) -{ - struct libmnt_fs *fs; - const char *fsroot; - - assert(cxt); - assert(cxt->filename); - - if (cxt->is_mounted) - return cxt->mountpoint; - - if (!mtab) { - mtab = mnt_new_table(); - if (!mtab) - return NULL; - if (!mntcache) - mntcache = mnt_new_cache(); - - mnt_table_set_parser_errcb(mtab, table_parser_errcb); - mnt_table_set_cache(mtab, mntcache); - - if (!lsblk->sysroot) - mnt_table_parse_mtab(mtab, NULL); - else { - char buf[PATH_MAX]; - snprintf(buf, sizeof(buf), "%s" _PATH_PROC_MOUNTINFO, lsblk->sysroot); - mnt_table_parse_mtab(mtab, buf); - } - } - - /* Note that maj:min in /proc/self/mountinfo does not have to match with - * devno as returned by stat(), so we have to try devname too - */ - fs = mnt_table_find_devno(mtab, makedev(cxt->maj, cxt->min), MNT_ITER_BACKWARD); - if (!fs) - fs = mnt_table_find_srcpath(mtab, cxt->filename, MNT_ITER_BACKWARD); - if (!fs) { - cxt->mountpoint = is_active_swap(cxt->filename) ? xstrdup("[SWAP]") : NULL; - cxt->is_mounted = 1; - return cxt->mountpoint; - } - - /* found */ - fsroot = mnt_fs_get_root(fs); - if (fsroot && strcmp(fsroot, "/") != 0) { - /* hmm.. we found bind mount or btrfs subvolume, let's try to - * get real FS root mountpoint */ - struct libmnt_fs *rfs; - struct libmnt_iter *itr = mnt_new_iter(MNT_ITER_BACKWARD); - - mnt_table_set_iter(mtab, itr, fs); - while (mnt_table_next_fs(mtab, itr, &rfs) == 0) { - fsroot = mnt_fs_get_root(rfs); - if ((!fsroot || strcmp(fsroot, "/") == 0) - && mnt_fs_match_source(rfs, cxt->filename, mntcache)) { - fs = rfs; - break; - } - } - mnt_free_iter(itr); - } - - DBG(DEV, ul_debugobj(cxt, "mountpoint: %s", mnt_fs_get_target(fs))); - cxt->mountpoint = xstrdup(mnt_fs_get_target(fs)); - cxt->is_mounted = 1; - return cxt->mountpoint; -} - #ifndef HAVE_LIBUDEV static int get_udev_properties(struct blkdev_cxt *cxt __attribute__((__unused__))) @@ -1970,7 +1867,6 @@ int main(int argc, char *argv[]) lsblk->sort_hidden = 1; } - mnt_init_debug(0); scols_init_debug(0); ul_path_init_debug(); @@ -2059,9 +1955,6 @@ leave: scols_unref_table(lsblk->table); - mnt_unref_table(mtab); - mnt_unref_table(swaps); - mnt_unref_cache(mntcache); #ifdef HAVE_LIBUDEV udev_unref(udev); #endif |