Bug 2049414

Summary: [RFE] Filesystem: Support for mounting by label
Product: Red Hat Enterprise Linux 8 Reporter: Reid Wahl <nwahl>
Component: resource-agentsAssignee: Oyvind Albrigtsen <oalbrigt>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.5CC: agk, cluster-maint, fdinitto, mjuricek, nbertolus, phagara, sbradley
Target Milestone: rcKeywords: FutureFeature
Target Release: 8.7   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: resource-agents-4.9.0-19.el8 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
: 2072371 (view as bug list) Environment:
Last Closed: 2022-11-08 09:09:06 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2072371    
Deadline: 2022-04-25   

Description Reid Wahl 2022-02-02 07:59:09 UTC
Description of problem:

Currently, mounting a filesystem by the device's label fails if there's a space between "-L" and the label. For example, `device="-L IPXE"`. This is because we double-quote the DEVICE variable, which prevents word splitting, when we use it in the mount command.

We can't remove the double quoting, because it was the fix for BZ 1624591, which enabled us to mount devices that **actually** have whitespace in their names.

So I think we have two options:

1. Add a flag (e.g., `uselabel=true`, with default value set to false) that tells the Filesystem resource agent to treat the `device` option as a device label instead of a device name. Then use `$MOUNT -L "$DEVICE"` instead of `$MOUNT "$DEVICE"` if uselabel=true. I favor this option.
2. Do nothing and simply instruct users to omit the space after the -L. So in our example, it would be `device="-LIPXE"` instead of `device="-L IPXE"`. I think this will work but it's a bit counterintuitive and harder to read.

-----

Version-Release number of selected component (if applicable):

resource-agents-4.1.1-98.el8

-----

How reproducible:

Always

-----

Steps to Reproduce:
1. Configure a Filesystem resource with a label in the device attribute (e.g., `device="-L mylabel"`).
2. Try to start the resource.

-----

Actual results:

ERROR: Couldn't mount device [-L mylabel] as /mnt/my_fs'

-----

Expected results:

Resource starts and filesystem mounts.

Comment 3 Oyvind Albrigtsen 2022-04-01 07:35:37 UTC
https://github.com/ClusterLabs/resource-agents/pull/1757

Comment 4 Oyvind Albrigtsen 2022-04-21 08:33:22 UTC
Additional patch to improve the logic: https://github.com/ClusterLabs/resource-agents/pull/1763

Comment 12 errata-xmlrpc 2022-11-08 09:09:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (resource-agents bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:7443