[Cluster-devel] Building clufter on EL8
Hi all, While waiting to see what CentOS 8 will do with regard to HA, I decided to rebuild the rhel 8 packages for our own repo[1]. To this end, I've rebuilt all packages, except clufter. The clufter package relies on jing, and jing is not provided in RHEL 8. Obviously, clufter was build for RHEL 8, so I'm curious how this was done... I started the process of building jing myself, but very quickly fell into a very deep dependency well. Tips? -- Digimer Papers and Projects: https://alteeve.com/w/ "I am, somehow, less interested in the weight and convolutions of Einstein’s brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops." - Stephen Jay Gould
Re: [Cluster-devel] [GIT PULL] gfs2: Fix remounting (broken in -rc1)
The pull request you sent on Wed, 30 Oct 2019 12:24:49 +0100: > git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git > tags/gfs2-v5.4-rc5.fixes has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/b66b449872d3652651cec775267f72f274eb7d7e Thank you! -- Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker
[Cluster-devel] [GIT PULL] gfs2: Fix remounting (broken in -rc1)
Hi Linus, could you please pull the following fix for gfs2? Thanks, Andreas The following changes since commit d6d5df1db6e9d7f8f76d2911707f7d5877251b02: Linux 5.4-rc5 (2019-10-27 13:19:19 -0400) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-v5.4-rc5.fixes for you to fetch changes up to d5798141fd54cea074c3429d5803f6c41ade0ca8: gfs2: Fix initialisation of args for remount (2019-10-30 12:16:53 +0100) Fix remounting (broken in -rc1). Andrew Price (1): gfs2: Fix initialisation of args for remount fs/gfs2/ops_fstype.c | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-)
Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read
On Wed, Oct 30, 2019 at 11:35 AM Steven Whitehouse wrote: > > NFS may be ok here, but it will break GFS2. There may be others too... > OCFS2 is likely one. Not sure about CIFS either. Does it really matter > that we might occasionally allocate a page and then free it again? Why are gfs2 and cifs doing things wrong? "readpage()" is not for synchrionizing metadata. Never has been. You shouldn't treat it that way, and you shouldn't then make excuses for filesystems that treat it that way. Look at mmap, for example. It will do the SIGBUS handling before calling readpage(). Same goes for the copyfile code. A filesystem that thinks "I will update size at readpage" is already fundamentally buggy. We do _recheck_ the inode size under the page lock, but that's to handle the races with truncate etc. Linus
Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read
Hi, On 29/10/2019 16:52, Linus Torvalds wrote: On Tue, Oct 29, 2019 at 3:25 PM Konstantin Khlebnikov wrote: I think all network filesystems which synchronize metadata lazily should be marked. For example as "SB_VOLATILE". And vfs could handle them specially. No need. The VFS layer doesn't call generic_file_buffered_read() directly anyway. It's just a helper function for filesystems to use if they want to. They could (and should) make sure the inode size is sufficiently up-to-date before calling it. And if they want something more synchronous, they can do it themselves. But NFS, for example, has open/close consistency, so the metadata revalidation is at open() time, not at read time. Linus NFS may be ok here, but it will break GFS2. There may be others too... OCFS2 is likely one. Not sure about CIFS either. Does it really matter that we might occasionally allocate a page and then free it again? Ramfs is a simple test case, but at the same time it doesn't represent the complexity of a real world filesystem. I'm just back from a few days holiday so apologies if I've missed something earlier on in the discussions, Steve.
[Cluster-devel] [PATCH v2] gfs2: Fix initialisation of args for remount
When gfs2 was converted to use fs_context, the initialisation of the mount args structure to the currently active args was lost with the removal of gfs2_remount_fs(), so the checks of the new args on remount became checks against the default values instead of the current ones. This caused unexpected remount behaviour and test failures (xfstests generic/294, generic/306 and generic/452). Reinstate the args initialisation, this time in gfs2_init_fs_context() and conditional upon fc->purpose, as that's the only time we get control before the mount args are parsed in the remount process. Fixes: 1f52aa08d12f ("gfs2: Convert gfs2 to fs_context") Signed-off-by: Andrew Price --- v2: Switch to kmalloc and only zero the args struct in the normal mount case. (Thanks, Andreas.) fs/gfs2/ops_fstype.c | 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index dc61af2c4d5e..18daf494abab 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -1540,17 +1540,23 @@ static int gfs2_init_fs_context(struct fs_context *fc) { struct gfs2_args *args; - args = kzalloc(sizeof(*args), GFP_KERNEL); + args = kmalloc(sizeof(*args), GFP_KERNEL); if (args == NULL) return -ENOMEM; - args->ar_quota = GFS2_QUOTA_DEFAULT; - args->ar_data = GFS2_DATA_DEFAULT; - args->ar_commit = 30; - args->ar_statfs_quantum = 30; - args->ar_quota_quantum = 60; - args->ar_errors = GFS2_ERRORS_DEFAULT; + if (fc->purpose == FS_CONTEXT_FOR_RECONFIGURE) { + struct gfs2_sbd *sdp = fc->root->d_sb->s_fs_info; + *args = sdp->sd_args; + } else { + memset(args, 0, sizeof(*args)); + args->ar_quota = GFS2_QUOTA_DEFAULT; + args->ar_data = GFS2_DATA_DEFAULT; + args->ar_commit = 30; + args->ar_statfs_quantum = 30; + args->ar_quota_quantum = 60; + args->ar_errors = GFS2_ERRORS_DEFAULT; + } fc->fs_private = args; fc->ops = _context_ops; return 0; -- 2.21.0