Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
util-linux.3352
util-linux-libmount-btrfs-subvolid-2.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File util-linux-libmount-btrfs-subvolid-2.patch of Package util-linux.3352
From c6f9f229c57f48ff521c6901d6cc48c2474f8d67 Mon Sep 17 00:00:00 2001 From: Stanislav Brabec <sbrabec@suse.cz> Date: Wed, 27 Jan 2016 21:37:29 +0100 Subject: [PATCH 2/2] libmount: code re-indentation For easier review, the fix of libmount comes in two patches: PATCH 1/2: libmount: run btrfs subvol checks for "subvolid" option PATCH 2/2: code re-indentation No code change is present in this patch. Signed-off-by: Stanislav Brabec <sbrabec@suse.cz> --- libmount/src/tab.c | 87 +++++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 43 deletions(-) Index: util-linux-2.25/libmount/src/tab.c =================================================================== --- util-linux-2.25.orig/libmount/src/tab.c +++ util-linux-2.25/libmount/src/tab.c @@ -1381,50 +1381,51 @@ struct libmnt_fs *mnt_table_get_fs_root( DBG(BTRFS, ul_debug("lookup for FS root")); if (mnt_fs_get_option(fs, "subvolid", &vol, &volsz)) { - if (mnt_fs_get_option(fs, "subvol", &vol, &volsz)) { - /* If fstab entry does not contain "subvol", we have to - * check, whether btrfs has default subvolume defined. - */ - uint64_t default_id; - char *target; - struct libmnt_fs *f; - char default_id_str[sizeof(stringify_value(UINT64_MAX))]; - - default_id = btrfs_get_default_subvol_id(mnt_fs_get_target(fs)); - if (default_id == UINT64_MAX) - goto dflt; - - /* Volume has default subvolume. Check if it matches to - * the one in mountinfo. - * - * Only kernel >= 4.2 reports subvolid. On older - * kernels, there is no reasonable way to detect which - * subvolume was mounted. - */ - target = mnt_resolve_spec(mnt_fs_get_target(fs), tb->cache); - if (!target) - goto err; - - snprintf(default_id_str, sizeof(default_id_str), "%llu", - (unsigned long long int) default_id); - - DBG(BTRFS, ul_debug("target=%s default subvolid=%s", target, default_id_str)); - f = mnt_table_find_target_with_option(tb, target, - "subvolid", default_id_str, - MNT_ITER_BACKWARD); - if (!tb->cache) - free(target); - if (!f) - goto dflt; - - /* Instead of set of BACKREF queries constructing - * subvol path, use the one in mountinfo. Kernel does - * the evaluation for us. */ - DBG(BTRFS, ul_debug("setting FS root: btrfs default subvolid = %s", default_id_str)); - if (mnt_fs_get_option(f, "subvol", &vol, &volsz)) - goto dflt; - } else - DBG(BTRFS, ul_debug("setting FS root: btrfs subvol")); + if (mnt_fs_get_option(fs, "subvol", &vol, &volsz)) { + /* If fstab entry does not contain "subvol", we + * have to check, whether btrfs has default + * subvolume defined. + */ + uint64_t default_id; + char *target; + struct libmnt_fs *f; + char default_id_str[sizeof(stringify_value(UINT64_MAX))]; + + default_id = btrfs_get_default_subvol_id(mnt_fs_get_target(fs)); + if (default_id == UINT64_MAX) + goto dflt; + + /* Volume has default subvolume. Check if it + * matches to the one in mountinfo. + * + * Only kernel >= 4.2 reports subvolid. On older + * kernels, there is no reasonable way to detect + * which subvolume was mounted. + */ + target = mnt_resolve_spec(mnt_fs_get_target(fs), tb->cache); + if (!target) + goto err; + + snprintf(default_id_str, sizeof(default_id_str), "%llu", + (unsigned long long int) default_id); + + DBG(BTRFS, ul_debug("target=%s default subvolid=%s", target, default_id_str)); + f = mnt_table_find_target_with_option(tb, target, + "subvolid", default_id_str, + MNT_ITER_BACKWARD); + if (!tb->cache) + free(target); + if (!f) + goto dflt; + + /* Instead of set of BACKREF queries constructing + * subvol path, use the one in mountinfo. Kernel + * does the evaluation for us. */ + DBG(BTRFS, ul_debug("setting FS root: btrfs default subvolid = %s", default_id_str)); + if (mnt_fs_get_option(f, "subvol", &vol, &volsz)) + goto dflt; + } else + DBG(BTRFS, ul_debug("setting FS root: btrfs subvol")); } else { char *target; struct libmnt_fs *f;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor