summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Paredes <joaommp@yahoo.com>2026-03-02 05:55:39 +0300
committerDave Kleikamp <dave.kleikamp@oracle.com>2026-03-11 18:57:52 +0300
commit679330e4a7af1d102d035b13b2b9d41bc1dfbbf7 (patch)
tree482a9255ecc70d091bd9fef7c63b4c43452d3024
parentca5848ae87d24886a7886f5a22278bd4045c15f8 (diff)
downloadlinux-679330e4a7af1d102d035b13b2b9d41bc1dfbbf7.tar.xz
JFS: always load filesystem UUID during mount
The filesystem UUID was only being loaded into super_block sb when an external journal device was in use. When mounting without an external journal, the UUID remained unset, which prevented the computation of a filesystem ID (fsid), which could be confirmed via `stat -f -c "%i"` and thus user space could not use fanotify correctly. A missing filesystem ID causes fanotify to return ENODEV when marking the filesystem for events like FAN_CREATE, FAN_DELETE, FAN_MOVED_TO, and FAN_MOVED_FROM. As a result, applications relying on fanotify could not monitor these events on JFS filesystems without an external journal. Moved the UUID initialization so it is always performed during mount, ensuring the superblock UUID is consistently available. Signed-off-by: João Paredes <joaommp@yahoo.com> Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
-rw-r--r--fs/jfs/jfs_mount.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/jfs/jfs_mount.c b/fs/jfs/jfs_mount.c
index 52e6b58c5dbd..dac822f15070 100644
--- a/fs/jfs/jfs_mount.c
+++ b/fs/jfs/jfs_mount.c
@@ -378,11 +378,12 @@ static int chkSuper(struct super_block *sb)
sbi->nbperpage = PSIZE >> sbi->l2bsize;
sbi->l2nbperpage = L2PSIZE - sbi->l2bsize;
sbi->l2niperblk = sbi->l2bsize - L2DISIZE;
+ uuid_copy(&sbi->uuid, &j_sb->s_uuid);
+
if (sbi->mntflag & JFS_INLINELOG)
sbi->logpxd = j_sb->s_logpxd;
else {
sbi->logdev = new_decode_dev(le32_to_cpu(j_sb->s_logdev));
- uuid_copy(&sbi->uuid, &j_sb->s_uuid);
uuid_copy(&sbi->loguuid, &j_sb->s_loguuid);
}
sbi->fsckpxd = j_sb->s_fsckpxd;