gfs2 fixes

- Make sure to initialize the filesystem work queues before registering
  the filesystem; this prevents them from being used uninitialized.

- On filesystem withdraw: prevent a a double iput() and immediately
  reject pending locking requests that can no longer succeed.

- Use TRY lock in gfs2_inode_lookup() to prevent a rare glock hang
  during evict.

- During filesystem mount, explicitly make sure that the sb_bsize and
  sb_bsize_shift super block fields are consistent with each other.
  This prevents messy error messages during fuzz testing.

- Switch from strlcpy to strscpy.
gfs2: Register fs after creating workqueues

Before this patch, the gfs2 file system was registered prior to creating
the three workqueues. In some cases this allowed dlm to send recovery
work to a workqueue that did not yet exist because gfs2 was still
initializing.

This patch changes the order of gfs2's initialization routine so it only
registers the file system after the work queues are created.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 file changed