public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/30] Ocfs2 and Configfs patches for 2.6.25-rc1
@ 2008-01-17 22:35 Mark Fasheh
  2008-01-17 22:35 ` [PATCH 01/30] ocfs2_dlm: Call node eviction callbacks from heartbeat handler Mark Fasheh
                   ` (29 more replies)
  0 siblings, 30 replies; 39+ messages in thread
From: Mark Fasheh @ 2008-01-17 22:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: ocfs2-devel


The following series of patches comprises the bulk of our outstanding
changes for Ocfs2 and Configfs.


Configfs gets some lockdep updates, and we remove it's EXPERIMENTAL tag as
things have been quite stable for some time now.


Ocfs2 gets fixes that made it in too late for 2.6.24, and several new
features. The most interesting are listed below:

We've been on the path to removing the "vote" cluster messaging in Ocfs2 for
some time now. I'm happy to announce that this series gets rid of the last
set of messages, which were used for "mount" and "unmount". Though not
really a performance problem, the messages required that Ocfs2 track node
information such as IP address, port, etc. By removing those votes, we no
longer need that information in the file system (the dlm still uses it, but
that's ok). As such, total kernel code complexity goes down and we get Ocfs2
in shape for a future where the cluster stack can be kept in userspace and
Ocfs2 can then easily plug into something like fs/dlm.

Initially, Ocfs2 was designed with two locks per inode - a "meta lock"
covering inode meta data, and a "data lock" covering inode data. Recently,
that decision has been revisited in light of some facts: The majority of
users mount the file system in data=ordered mode, which means that
transferring a meta data lock also syncs inode data. Having a 2nd, mostly
unused lock in place only meant extra messaging for lock mastery. Merging
the functionality into one inode lock improves that situation by
streamlining the most common cases of cluster locking.

Ocfs2 now supports online resize. Userspace does most of the setup and then
initiates the operation via a set of Ocfs2 specific ioctls(). This is
similar to how ext3 handles things, though we don't use the same exact
ioctls because Ocfs2 has a different disk structure.

Finally, Ocfs2 now supports cluster aware flock(). This is pretty straight
forward in that we map flock() requests directly to dlm locks. Mandatory
locks aren't supported, as they would require some expensive cluster
messaging. Posix file locks (lockf()) support is a very early work in
progress, so it'll have to wait until at least 2.6.26, quite possibly later.
In the meantime, flock() support is ready and works well.


Also included in this series is a trivial patch to split out some of
include/linux/dlm.h into an include/linux/dlmconstants.h. It's actually part
of a series of patches targetting 2.6.26 which teach Ocfs2 how to optionally
plug into fs/dlm. The patch stands on it's own as a nice cleanup though, so
I'm sending it out for 2.6.25.
	--Mark

Please pull from 'upstream-linus' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git upstream-linus

to receive the following updates:

 Documentation/filesystems/ocfs2.txt |   16 +-
 Documentation/ioctl-number.txt      |    1 +
 fs/Kconfig                          |   14 +-
 fs/configfs/dir.c                   |    5 +-
 fs/configfs/file.c                  |    2 +-
 fs/ocfs2/Makefile                   |    5 +-
 fs/ocfs2/alloc.c                    |    8 +-
 fs/ocfs2/aops.c                     |  137 ++++---
 fs/ocfs2/buffer_head_io.c           |   61 +++
 fs/ocfs2/buffer_head_io.h           |    2 +
 fs/ocfs2/cluster/heartbeat.h        |    2 +-
 fs/ocfs2/cluster/tcp.h              |    4 +-
 fs/ocfs2/cluster/tcp_internal.h     |    8 +-
 fs/ocfs2/cluster/ver.c              |    2 +-
 fs/ocfs2/dcache.c                   |    8 +-
 fs/ocfs2/dir.c                      |    8 +-
 fs/ocfs2/dlm/dlmfsver.c             |    2 +-
 fs/ocfs2/dlm/dlmrecovery.c          |   19 +-
 fs/ocfs2/dlm/dlmver.c               |    2 +-
 fs/ocfs2/dlmglue.c                  |  546 +++++++++++++++++++-------
 fs/ocfs2/dlmglue.h                  |   31 +-
 fs/ocfs2/endian.h                   |    5 -
 fs/ocfs2/export.c                   |    8 +-
 fs/ocfs2/file.c                     |  163 +++++---
 fs/ocfs2/file.h                     |    6 +
 fs/ocfs2/heartbeat.c                |   80 ----
 fs/ocfs2/heartbeat.h                |    2 -
 fs/ocfs2/inode.c                    |   84 ++--
 fs/ocfs2/inode.h                    |   10 +-
 fs/ocfs2/ioctl.c                    |   31 ++-
 fs/ocfs2/journal.c                  |   51 ++--
 fs/ocfs2/journal.h                  |    6 +
 fs/ocfs2/localalloc.c               |   50 ++-
 fs/ocfs2/locks.c                    |  125 ++++++
 fs/ocfs2/{vote.h => locks.h}        |   29 +-
 fs/ocfs2/mmap.c                     |   17 +-
 fs/ocfs2/namei.c                    |   66 ++--
 fs/ocfs2/ocfs2.h                    |   29 +-
 fs/ocfs2/ocfs2_fs.h                 |   22 +
 fs/ocfs2/ocfs2_lockid.h             |    5 +
 fs/ocfs2/resize.c                   |  641 +++++++++++++++++++++++++++++
 fs/ocfs2/{vote.h => resize.h}       |   32 +--
 fs/ocfs2/slot_map.c                 |   19 -
 fs/ocfs2/slot_map.h                 |    2 -
 fs/ocfs2/suballoc.c                 |   20 +-
 fs/ocfs2/suballoc.h                 |    8 +
 fs/ocfs2/super.c                    |  140 ++++----
 fs/ocfs2/sysfile.c                  |    2 +-
 fs/ocfs2/ver.c                      |    2 +-
 fs/ocfs2/vote.c                     |  756 -----------------------------------
 include/linux/Kbuild                |    1 +
 include/linux/dlm.h                 |  140 +-------
 include/linux/dlmconstants.h        |  159 ++++++++
 53 files changed, 1980 insertions(+), 1614 deletions(-)
 create mode 100644 fs/ocfs2/locks.c
 copy fs/ocfs2/{vote.h => locks.h} (54%)
 create mode 100644 fs/ocfs2/resize.c
 rename fs/ocfs2/{vote.h => resize.h} (50%)
 delete mode 100644 fs/ocfs2/vote.c
 create mode 100644 include/linux/dlmconstants.h

Jan Kara (4):
      ocfs2: Silence false lockdep warnings
      ocfs2: Safer read_inline_data()
      ocfs2: Use generic_file_llseek
      ocfs2: printf fixes

Joel Becker (2):
      dlm: Split lock mode and flag constants into a sharable header.
      configfs: Remove EXPERIMENTAL

Joonwoo Park (2):
      configfs: dir.c fix possible recursive locking
      configfs: file.c fix possible recursive locking

Marcin Slusarz (1):
      ocfs2: convert byte order of constant instead of variable

Mark Fasheh (14):
      ocfs2_dlm: Call node eviction callbacks from heartbeat handler
      ocfs2: Remove fs dependency on ocfs2_heartbeat module
      ocfs2: Remove mount/unmount votes
      ocfs2: Add data downconvert worker to inode lock
      ocfs2: Remove data locks
      ocfs2: Rename ocfs2_meta_[un]lock
      ocfs2: Readpages support
      ocfs2: Documentation update
      ocfs2: Add missing permission checks
      ocfs2: build warnings fix
      ocfs2: Support commit= mount option
      ocfs2: add flock lock type
      ocfs2: cluster aware flock()
      ocfs2: bump version number

Sunil Mushran (2):
      ocfs2: Local alloc window size changeable via mount option
      ocfs2: Update default cluster timeouts

Tao Ma (5):
      ocfs2: Initalize bitmap_cpg of ocfs2_super to be the maximum.
      ocfs2: Reserve ioctl range
      ocfs2: Add group extend for online resize
      ocfs2: Implement group add for online resize
      ocfs2/dlm: Clear joining_node on hearbeat node down


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2008-01-24  3:15 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-17 22:35 [PATCH 0/30] Ocfs2 and Configfs patches for 2.6.25-rc1 Mark Fasheh
2008-01-17 22:35 ` [PATCH 01/30] ocfs2_dlm: Call node eviction callbacks from heartbeat handler Mark Fasheh
2008-01-17 22:35 ` [PATCH 02/30] ocfs2: Remove fs dependency on ocfs2_heartbeat module Mark Fasheh
2008-01-17 22:35 ` [PATCH 03/30] ocfs2: Remove mount/unmount votes Mark Fasheh
2008-01-23 22:05   ` Andrew Morton
2008-01-24  1:02     ` Mark Fasheh
2008-01-17 22:35 ` [PATCH 04/30] ocfs2: Add data downconvert worker to inode lock Mark Fasheh
2008-01-17 22:35 ` [PATCH 05/30] ocfs2: Remove data locks Mark Fasheh
2008-01-17 22:35 ` [PATCH 06/30] ocfs2: Rename ocfs2_meta_[un]lock Mark Fasheh
2008-01-17 22:35 ` [PATCH 07/30] dlm: Split lock mode and flag constants into a sharable header Mark Fasheh
2008-01-17 22:35 ` [PATCH 08/30] ocfs2: Readpages support Mark Fasheh
2008-01-23 22:05   ` Andrew Morton
2008-01-24  1:20     ` Mark Fasheh
2008-01-17 22:35 ` [PATCH 09/30] ocfs2: Documentation update Mark Fasheh
2008-01-17 22:35 ` [PATCH 10/30] ocfs2: Initalize bitmap_cpg of ocfs2_super to be the maximum Mark Fasheh
2008-01-17 22:35 ` [PATCH 11/30] ocfs2: Reserve ioctl range Mark Fasheh
2008-01-17 22:35 ` [PATCH 12/30] ocfs2: Add group extend for online resize Mark Fasheh
2008-01-23 22:05   ` Andrew Morton
2008-01-24  3:14     ` Mark Fasheh
2008-01-17 22:35 ` [PATCH 13/30] ocfs2: Implement group add " Mark Fasheh
2008-01-23 22:05   ` Andrew Morton
2008-01-24  2:48     ` Mark Fasheh
2008-01-17 22:35 ` [PATCH 14/30] ocfs2: Add missing permission checks Mark Fasheh
2008-01-17 22:35 ` [PATCH 15/30] ocfs2: build warnings fix Mark Fasheh
2008-01-17 22:35 ` [PATCH 16/30] ocfs2: Support commit= mount option Mark Fasheh
2008-01-17 22:35 ` [PATCH 17/30] ocfs2: Local alloc window size changeable via " Mark Fasheh
2008-01-17 22:35 ` [PATCH 18/30] ocfs2: add flock lock type Mark Fasheh
2008-01-17 22:35 ` [PATCH 19/30] ocfs2: cluster aware flock() Mark Fasheh
2008-01-17 22:35 ` [PATCH 20/30] ocfs2: Silence false lockdep warnings Mark Fasheh
2008-01-17 22:35 ` [PATCH 21/30] ocfs2: Safer read_inline_data() Mark Fasheh
2008-01-17 22:35 ` [PATCH 22/30] ocfs2: Use generic_file_llseek Mark Fasheh
2008-01-17 22:35 ` [PATCH 23/30] ocfs2: printf fixes Mark Fasheh
2008-01-17 22:35 ` [PATCH 24/30] ocfs2: Update default cluster timeouts Mark Fasheh
2008-01-17 22:35 ` [PATCH 25/30] ocfs2: convert byte order of constant instead of variable Mark Fasheh
2008-01-17 22:35 ` [PATCH 26/30] ocfs2/dlm: Clear joining_node on hearbeat node down Mark Fasheh
2008-01-17 22:35 ` [PATCH 27/30] ocfs2: bump version number Mark Fasheh
2008-01-17 22:35 ` [PATCH 28/30] configfs: Remove EXPERIMENTAL Mark Fasheh
2008-01-17 22:35 ` [PATCH 29/30] configfs: dir.c fix possible recursive locking Mark Fasheh
2008-01-17 22:35 ` [PATCH 30/30] configfs: file.c " Mark Fasheh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox