linux/fs/ocfs2
Joel Becker d24fbcda0c ocfs2: Negotiate locking protocol versions.
Currently, when ocfs2 nodes connect via TCP, they advertise their
compatibility level.  If the versions do not match, two nodes cannot speak
to each other and they disconnect. As a result, this provides no forward or
backwards compatibility.

This patch implements a simple protocol negotiation at the dlm level by
introducing a major/minor version number scheme for entities that
communicate.  Specifically, o2dlm has a major/minor version for interaction
with o2dlm on other nodes, and ocfs2 itself has a major/minor version for
interacting with the filesystem on other nodes.

This will allow rolling upgrades of ocfs2 clusters when changes to the
locking or network protocols can be done in a backwards compatible manner.
In those cases, only the minor number is changed and the negotatied protocol
minor is returned from dlm join. In the far less likely event that a
required protocol change makes backwards compatibility impossible, we simply
bump the major number.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2008-02-06 16:11:29 -08:00
..
cluster ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
dlm ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
alloc.c Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user 2008-02-05 09:44:13 -08:00
alloc.h ocfs2: Write support for directories with inline data 2007-10-12 11:54:41 -07:00
aops.c Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user 2008-02-05 09:44:13 -08:00
aops.h ocfs2: convert to new aops 2007-10-16 09:42:58 -07:00
buffer_head_io.c ocfs2: clean up bh null checks 2008-01-25 15:05:48 -08:00
buffer_head_io.h [PATCH 1/2] ocfs2: Add group extend for online resize 2008-01-25 14:53:35 -08:00
dcache.c ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
dcache.h ocfs2: Remove special casing for inode creation in ocfs2_dentry_attach_lock() 2006-09-24 13:50:45 -07:00
dir.c fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
dir.h ocfs2: Rename cleanups 2007-10-12 11:54:38 -07:00
dlmglue.c ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
dlmglue.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
endian.h ocfs2: convert byte order of constant instead of variable 2008-01-25 15:05:46 -08:00
export.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
export.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
extent_map.c ocfs2: Read support for inline data 2007-10-12 11:54:39 -07:00
extent_map.h ocfs2: Cache extent records 2007-04-26 15:10:40 -07:00
file.c ocfs2: printf fixes 2008-01-25 15:05:45 -08:00
file.h [PATCH 1/2] ocfs2: add flock lock type 2008-01-25 15:05:43 -08:00
heartbeat.c ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
heartbeat.h ocfs2: Remove fs dependency on ocfs2_heartbeat module 2008-01-25 14:36:40 -08:00
inode.c ocfs2: convert byte order of constant instead of variable 2008-01-25 15:05:46 -08:00
inode.h ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
ioctl.c ocfs2: Add missing permission checks 2008-01-25 15:05:19 -08:00
ioctl.h ocfs2: Implement compat_ioctl() 2007-05-02 15:07:16 -07:00
journal.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
journal.h [PATCH 2/2] ocfs2: Implement group add for online resize 2008-01-25 15:04:24 -08:00
localalloc.c ocfs2: Local alloc window size changeable via mount option 2008-01-25 15:05:43 -08:00
localalloc.h ocfs2: Allow smaller allocations during large writes 2007-09-20 15:06:09 -07:00
locks.c [PATCH 2/2] ocfs2: cluster aware flock() 2008-01-25 15:05:43 -08:00
locks.h [PATCH 2/2] ocfs2: cluster aware flock() 2008-01-25 15:05:43 -08:00
Makefile [PATCH 2/2] ocfs2: cluster aware flock() 2008-01-25 15:05:43 -08:00
mmap.c ocfs2: Rename ocfs2_meta_[un]lock 2008-01-25 14:46:01 -08:00
mmap.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
namei.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
namei.h ocfs2: Move directory manipulation code into dir.c 2007-10-12 11:54:36 -07:00
ocfs1_fs_compat.h fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
ocfs2_fs.h ocfs2: Local alloc window size changeable via mount option 2008-01-25 15:05:43 -08:00
ocfs2_lockid.h [PATCH 1/2] ocfs2: add flock lock type 2008-01-25 15:05:43 -08:00
ocfs2_lockingver.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
ocfs2.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
resize.c ocfs2: clean up bh null checks 2008-01-25 15:05:48 -08:00
resize.h [PATCH 2/2] ocfs2: Implement group add for online resize 2008-01-25 15:04:24 -08:00
slot_map.c ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
slot_map.h ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
suballoc.c fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
suballoc.h [PATCH 1/2] ocfs2: Add group extend for online resize 2008-01-25 14:53:35 -08:00
super.c ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
super.h ocfs2: use s_maxbytes directly in ocfs2_change_file_space() 2007-08-09 17:25:07 -07:00
symlink.c mm: make read_cache_page synchronous 2007-05-07 12:12:51 -07:00
symlink.h [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
sysfile.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
sysfile.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00
uptodate.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
uptodate.h ocfs2: implement directory read-ahead 2006-09-20 15:53:40 -07:00
ver.c ocfs2: bump version number 2008-01-25 15:05:46 -08:00
ver.h [PATCH] OCFS2: The Second Oracle Cluster Filesystem 2006-01-03 11:45:47 -08:00