Message ID | 20231024075535.2994553-1-amir73il@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | gfs2: fs: derive f_fsid from s_uuid | expand |
On Tue 24-10-23 10:55:35, Amir Goldstein wrote: > gfs2 already has optional persistent uuid. > > Use that uuid to report f_fsid in statfs(2), same as ext2/ext4/zonefs. > > This allows gfs2 to be monitored by fanotify filesystem watch. > for example, with inotify-tools 4.23.8.0, the following command can be > used to watch changes over entire filesystem: > > fsnotifywatch --filesystem /mnt/gfs2 > > Signed-off-by: Amir Goldstein <amir73il@gmail.com> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > > Andreas, > > I do not have a test setup for gfs2, but this change it quite trivial, > so I am posting it only compile tested. > > There is no need to test fanotify. It enough to test statfs returns > a non-zero f_fsid, e.g.: > > strace -e fstatfs du /mnt/gfs2 > > Thanks, > Amir. > > fs/gfs2/super.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c > index 02d93da21b2b..ea769af6bb23 100644 > --- a/fs/gfs2/super.c > +++ b/fs/gfs2/super.c > @@ -1006,6 +1006,7 @@ static int gfs2_statfs(struct dentry *dentry, struct kstatfs *buf) > buf->f_files = sc.sc_dinodes + sc.sc_free; > buf->f_ffree = sc.sc_free; > buf->f_namelen = GFS2_FNAMESIZE; > + buf->f_fsid = uuid_to_fsid(sb->s_uuid.b); > > return 0; > } > -- > 2.34.1 >
Amir, On Tue, Oct 24, 2023 at 9:56 AM Amir Goldstein <amir73il@gmail.com> wrote: > gfs2 already has optional persistent uuid. > > Use that uuid to report f_fsid in statfs(2), same as ext2/ext4/zonefs. I've applied this patch, thank you. Andreas
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 02d93da21b2b..ea769af6bb23 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1006,6 +1006,7 @@ static int gfs2_statfs(struct dentry *dentry, struct kstatfs *buf) buf->f_files = sc.sc_dinodes + sc.sc_free; buf->f_ffree = sc.sc_free; buf->f_namelen = GFS2_FNAMESIZE; + buf->f_fsid = uuid_to_fsid(sb->s_uuid.b); return 0; }
gfs2 already has optional persistent uuid. Use that uuid to report f_fsid in statfs(2), same as ext2/ext4/zonefs. This allows gfs2 to be monitored by fanotify filesystem watch. for example, with inotify-tools 4.23.8.0, the following command can be used to watch changes over entire filesystem: fsnotifywatch --filesystem /mnt/gfs2 Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- Andreas, I do not have a test setup for gfs2, but this change it quite trivial, so I am posting it only compile tested. There is no need to test fanotify. It enough to test statfs returns a non-zero f_fsid, e.g.: strace -e fstatfs du /mnt/gfs2 Thanks, Amir. fs/gfs2/super.c | 1 + 1 file changed, 1 insertion(+)