Re: [PATCH] common/rc: fix MKSWAP_PROG quoting

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]




On 8/31/21 7:26 AM, Zorro Lang wrote:
On Tue, Aug 31, 2021 at 11:04:26AM +0800, Murphy Zhou wrote:
After commit
   0e4dd8b9 common/rc: fix ignoring of errors on
we are getting this error message when running swapfiles tests:
   +./common/rc: line 2553: MKSWAP_PROG: command not found

Signed-off-by: Murphy Zhou <xzhou@xxxxxxxxxx>
---
  common/rc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/rc b/common/rc
index 46b6b220..0597de13 100644
--- a/common/rc
+++ b/common/rc
@@ -2550,7 +2550,7 @@ _format_swapfile() {
  	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
  	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
  	# Ignore permission complaints on filesystems that don't support perms
-	$(MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full
+	($MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full
The change history is:

Commit 0c95c8ac tried to "hide permision warning", so did:
-       $MKSWAP_PROG "$fname" >> $seqres.full
+       # Ignore permission complaints on filesystems that don't support perms
+       $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full

Then commit 0e4dd8b9 said "it broke older versions of bash such as 4.4.23", so tried
to use "a $(foo) to run the executable":
-       $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full
+       $(MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2)) >> $seqres.full

Now this patch try to do ($FOO_PROG):
($MKSWAP_PROG "$fname" .....)

I'm *not* a bash expert, if I'm wrong feel free to correct me:) If the original problem
is trying to hide permision warning from stderr, and to avoid new syntax breaking old
bash, Why we must struggle with this complex syntax which isn't compatible. How about:

Hi, sorry I do suck at bash, but:


$MKSWAP_PROG "$fname" >> $seqres.full 2>&1 | grep -v "insecure permission"

>> redirects stdout to the seqres.full and the 2>&1 redirects stderr to wherever stdout goes...so $MKSWAP_PROG "$fname" >> $seqres.full 2>&1 sends both stdout and stderr to the file so nothing is piped to grep. Or do I miss something (which is entirely possible)?


Thanks!



Or other better and compatible way ?

Thanks,
Zorro

  }
_swapon_file() {
--
2.20.1





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux