From: bugzilla-daemon@kernel.org
To: linux-ext4@vger.kernel.org
Subject: [Bug 217529] New: Remounting ext4 filesystem from ro to rw fails when quotas are enabled
Date: Tue, 06 Jun 2023 14:47:29 +0000 [thread overview]
Message-ID: <bug-217529-13602@https.bugzilla.kernel.org/> (raw)
https://bugzilla.kernel.org/show_bug.cgi?id=217529
Bug ID: 217529
Summary: Remounting ext4 filesystem from ro to rw fails when
quotas are enabled
Product: File System
Version: 2.5
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: ext4
Assignee: fs_ext4@kernel-bugs.osdl.org
Reporter: nikolas.kraetzschmar@sap.com
Regression: No
Description
Since commit a44be64, remounting a read-only ext4 filesystem to become
read-write fails when quotas are enabled. The mount syscall returns -EROFS and
outputs the following in dmesg:
```
EXT4-fs warning (device loop0): ext4_enable_quotas:7028: Failed to enable quota
tracking (type=0, err=-30, ino=3). Please run e2fsck
```
Root cause
The problem can be traced back to the changes introduced in commit a44be64. It
appears that the issue arises because the SB_RDONLY bit of the s_flags field is
now only cleared after executing the ext4_enable_quotas function. However, the
vfs_setup_quota_inode function, called by ext4_enable_quotas, checks whether
this bit is set (fs/quota/dquot.c:2331):
```
if (IS_RDONLY(inode))
return -EROFS;
```
This condition therefore always triggers the -EROFS fail condition.
Steps to Reproduce
The bug can be reproduced by executing the following script on a current
mainline kernel with defconfig:
```
#!/bin/bash
set -ex
truncate -s 1G /tmp/img
mkfs.ext4 /tmp/img
tune2fs -Q usrquota,grpquota,prjquota /tmp/img
losetup /dev/loop0 /tmp/img
mount -o ro /dev/loop0 /mnt
mount -o remount,rw /mnt
```
Executing the script results in the following output:
```
+ truncate -s 1G /tmp/img
+ mkfs.ext4 /tmp/img
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: b96a3da2-043f-11ee-b6f0-47c69db05231
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
+ tune2fs -Q usrquota,grpquota,prjquota /tmp/img
tune2fs 1.47.0 (5-Feb-2023)
+ losetup /dev/loop0 /tmp/img
[ 6.766763] loop0: detected capacity change from 0 to 2097152
+ mount -o ro /dev/loop0 /mnt
[ 6.791561] EXT4-fs (loop0): mounted filesystem
b96a3da2-043f-11ee-b6f0-47c69db05231 ro with ordered data mode. Quota mode:
journalled.
+ mount -o remount,rw /mnt
[ 6.805546] EXT4-fs warning (device loop0): ext4_enable_quotas:7028: Failed
to enable quota tracking (type=0, err=-30, ino=3). Please run e2fsck to fix.
mount: /mnt: cannot remount /dev/loop0 read-write, is write-protected.
dmesg(1) may have more information after failed mount system call.
```
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next reply other threads:[~2023-06-06 14:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-06 14:47 bugzilla-daemon [this message]
2023-06-09 10:53 ` [Bug 217529] Remounting ext4 filesystem from ro to rw fails when quotas are enabled bugzilla-daemon
2023-06-13 8:57 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-217529-13602@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.