[Cluster-devel] Building clufter on EL8

2019-10-30 Thread Digimer
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)

2019-10-30 Thread pr-tracker-bot
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)

2019-10-30 Thread Andreas Gruenbacher
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

2019-10-30 Thread Linus Torvalds
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

2019-10-30 Thread Steven Whitehouse

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

2019-10-30 Thread Andrew Price
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