commit cdef59a94c2fc962ada379d4240d556db7b56d55 Author: Tao Ma Date: Wed Mar 5 15:49:55 2008 +0800 ocfs2: Fix NULL pointer dereferences in o2net In some situations, ocfs2_set_nn_state might get called with sc = NULL and valid = 0. If sc = NULL, we can't dereference it to get the o2nm_node member. Instead, do what o2net_initialize_handshake does and use NULL when calling o2net_reconnect_delay and o2net_idle_timeout. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit c824c3c723f2e37a00b3b739a55b28de595fd72e Author: Sunil Mushran Date: Sat Mar 1 14:04:25 2008 -0800 ocfs2/dlm: dlm_thread should not sleep while holding the dlm_spinlock This patch addresses the bug in which the dlm_thread could go to sleep while holding the dlm_spinlock. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 535f7026fddafce6d0a0524db01a432c23a0a7b4 Author: Sunil Mushran Date: Sat Mar 1 14:04:24 2008 -0800 ocfs2/dlm: Print message showing the recovery master Knowing the dlm recovery master helps in debugging recovery issues. This patch prints a message on the recovery master node. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit b31cfc0237f89c3a8bc8f31b5da996e71b543214 Author: Sunil Mushran Date: Sat Mar 1 14:04:22 2008 -0800 ocfs2/dlm: Add missing dlm_lockres_put()s dlm_master_request_handler() forgot to put a lockres when dlm_assert_master_worker() failed or was skipped. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 52987e2ab456c1a828046494aac53819b1454341 Author: Sunil Mushran Date: Sat Mar 1 14:04:21 2008 -0800 ocfs2/dlm: Add missing dlm_lockres_put()s in migration path During migration, the recovery master node may be asked to master a lockres it may not know about. In that case, it would not only have to create a lockres and add it to the hash, but also remember to to do the _put_ corresponding to the kref_init in dlm_init_lockres(), as soon as the migration is completed. Yes, we don't wait for the dlm_purge_lockres() to do that matching put. Note the ref added for it being in the hash protects the lockres from being freed prematurely. This patch adds that missing put, as described above, to plug a memleak. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 2c5c54aca9d0263f81bd4886232835ba31f7635a Author: Sunil Mushran Date: Sat Mar 1 14:04:20 2008 -0800 ocfs2/dlm: Add missing dlm_lock_put()s Normally locks for remote nodes are freed when that node sends an UNLOCK message to the master. The master node tags an DLM_UNLOCK_FREE_LOCK action to do an extra put on the lock at the end. However, there are times when the master node has to free the locks for the remote nodes forcibly. Two cases when this happens are: 1. When the master has migrated the lockres plus all locks to another node. 2. When the master is clearing all the locks of a dead node. It was in the above two conditions that the dlm was missing the extra put. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 4338ab6a750303cbae4cc76cc7de5edba6598ebe Author: Tao Ma Date: Mon Mar 3 10:53:02 2008 +0800 ocfs2: Fix an endian bug in online resize. In ocfs2_group_add, 'cr' is a disk field of type 'ocfs2_chain_rec', and we were putting cpu byteorder values into it. Swap things to the right endian before storing. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 90d99779a4cc134daaf8910d814b7a8a5d1e8970 Author: Jan Engelhardt Date: Tue Jan 22 20:52:20 2008 +0100 [PATCH] [OCFS2]: constify function pointer tables Signed-off-by: Jan Engelhardt Signed-off-by: Mark Fasheh commit 0f71b7b40f55de909e40fa5ab217a5da3439c7d8 Author: Joel Becker Date: Tue Feb 12 14:56:25 2008 -0800 ocfs2: Fix endian bug in o2dlm protocol negotiation. struct dlm_query_join_packet is made up of four one-byte fields. They are effectively in big-endian order already. However, little-endian machines swap them before putting the packet on the wire (because query_join's response is a status, and that status is treated as a u32 on the wire). Thus, a big-endian and little-endian machines will treat this structure differently. The solution is to have little-endian machines swap the structure when converting from the structure to the u32 representation. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 2af37ce82d199d1d8cd6286f42f37d321627a807 Author: Tao Ma Date: Thu Feb 28 10:41:55 2008 +0800 ocfs2: Use dlm_print_one_lock_resource for lock resource print __dlm_print_one_lock_resource must be called with spin_lock the res->spinlock. While in some cases, we use it without this precondition and lead to the failure of assert_spin_locked. So call dlm_print_one_lock_resource instead. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 3a4780a85d4a160a471ed887bfce58b414f556b1 Author: Andrew Morton Date: Fri Feb 29 01:56:06 2008 -0800 [PATCH] fs/ocfs2/dlm/dlmdomain.c: fix printk warning fs/ocfs2/dlm/dlmdomain.c: In function 'dlm_send_join_cancels': fs/ocfs2/dlm/dlmdomain.c:983: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'long unsigned int' Signed-off-by: Andrew Morton Signed-off-by: Mark Fasheh commit 86c838b03daf35e2af6555842d04fe09a89f8d93 Author: Julia Lawall Date: Tue Feb 26 21:45:56 2008 +0100 [PATCH] fs/ocfs2/aops.c: Correct use of ! and & In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. This is not tested and clearly changes the semantics, so it is only something to consider. Signed-off-by: Julia Lawall Signed-off-by: Mark Fasheh commit 05488bbebe3deedbc5d58a1832f563ff96bc2ef6 Author: Adrian Bunk Date: Sun Feb 17 10:20:41 2008 +0200 [2.6 patch] ocfs2: make dlm_do_assert_master() static This patch makes the needlessly global dlm_do_assert_master() static. Signed-off-by: Adrian Bunk Signed-off-by: Mark Fasheh commit 200bfae37a15e50e0f9aa5683958bdfc3fd55e05 Author: Adrian Bunk Date: Sun Feb 17 10:20:38 2008 +0200 [2.6 patch] make ocfs2_downconvert_thread() static This patch makes the needlessly global ocfs2_downconvert_thread() static. Signed-off-by: Adrian Bunk Signed-off-by: Mark Fasheh commit 006000566d4e95b8d1924addfb41094acf0d5ec2 Author: Adrian Bunk Date: Tue Jan 29 00:11:41 2008 +0200 [2.6 patch] fs/ocfs2/: possible cleanups This patch contains the following cleanups that are now possible: - make the following needlessly global functions static: - dlmglue.c:ocfs2_process_blocked_lock() - heartbeat.c:ocfs2_node_map_init() - #if 0 the following unused global function plus support functions: - heartbeat.c:ocfs2_node_map_is_only() Signed-off-by: Adrian Bunk Signed-off-by: Mark Fasheh commit 0dd3256e04c452396c9d22943e4a18e02f4dbdf4 Author: Marcin Slusarz Date: Wed Feb 13 00:06:18 2008 +0100 [PATCH] ocfs2: le*_add_cpu conversion replace all: little_endian_variable = cpu_to_leX(leX_to_cpu(little_endian_variable) + expression_in_cpu_byteorder); with: leX_add_cpu(&little_endian_variable, expression_in_cpu_byteorder); generated with semantic patch Signed-off-by: Marcin Slusarz Signed-off-by: Mark Fasheh commit 1044e401af9a309637828aa3cc8f3b6409fcbf4e Author: Mark Fasheh Date: Thu Feb 28 17:16:03 2008 -0800 ocfs2: Fix writeout in ocfs2_data_convert_worker() Commit f1f540688eae66c274ff1c1133b5d9c687b28f58 "optimized" ocfs2_data_convert_worker() to "only do work for regular files". Unfortunately, I left out a '!', which casued it to *skip* regular files. This was hidden from testing until recently because the default data journaling mode (data=ordered) doesn't exercise this code. Signed-off-by: Mark Fasheh Signed-off-by: Joel Becker commit 7ad8b3d30ecae325fcccbf86f34ce3af716b4f95 Author: Sunil Mushran Date: Wed Feb 6 12:11:17 2008 -0800 ocfs2: Enable localalloc for local mounts Commit 2fbe8d1ebe004425b4f7b8bba345623d2280be82 disabled localalloc for local mounts. This caused issues as ocfs2 uses localalloc to provide write locality. This patch enables localalloc for local mounts. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 8b5f6883683c91ad7e1af32b7ceeb604d68e2865 Author: Marcin Slusarz Date: Fri Feb 8 04:20:12 2008 -0800 byteorder: move le32_add_cpu & friends from OCFS2 to core This patchset moves le*_add_cpu and be*_add_cpu functions from OCFS2 to core header (1st), converts ext3 filesystem to this API (2nd) and replaces XFS different named functions with new ones (3rd). There are many places where these functions will be useful. Just look at: grep -r 'cpu_to_[ble12346]*([ble12346]*_to_cpu.*[-+]' linux-src/ Patch for ext3 is an example how conversions will probably look like. This patch: - move inline functions which add native byte order variable to little/big endian variable to core header * le16_add_cpu(__le16 *var, u16 val) * le32_add_cpu(__le32 *var, u32 val) * le64_add_cpu(__le64 *var, u64 val) * be32_add_cpu(__be32 *var, u32 val) - add for completeness: * be16_add_cpu(__be16 *var, u16 val) * be64_add_cpu(__be64 *var, u64 val) Signed-off-by: Marcin Slusarz Acked-by: Mark Fasheh Cc: David Chinner Cc: Timothy Shimmin Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d24fbcda0c4988322949df3d759f1cfb32b32953 Author: Joel Becker Date: Fri Jan 25 17:02:21 2008 -0800 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 Signed-off-by: Mark Fasheh commit eebd2aa355692afaf9906f62118620f1a1c19dbb Author: Christoph Lameter Date: Mon Feb 4 22:28:29 2008 -0800 Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user Simplify page cache zeroing of segments of pages through 3 functions zero_user_segments(page, start1, end1, start2, end2) Zeros two segments of the page. It takes the position where to start and end the zeroing which avoids length calculations and makes code clearer. zero_user_segment(page, start, end) Same for a single segment. zero_user(page, start, length) Length variant for the case where we know the length. We remove the zero_user_page macro. Issues: 1. Its a macro. Inline functions are preferable. 2. The KM_USER0 macro is only defined for HIGHMEM. Having to treat this special case everywhere makes the code needlessly complex. The parameter for zeroing is always KM_USER0 except in one single case that we open code. Avoiding KM_USER0 makes a lot of code not having to be dealing with the special casing for HIGHMEM anymore. Dealing with kmap is only necessary for HIGHMEM configurations. In those configurations we use KM_USER0 like we do for a series of other functions defined in highmem.h. Since KM_USER0 is depends on HIGHMEM the existing zero_user_page function could not be a macro. zero_user_* functions introduced here can be be inline because that constant is not used when these functions are called. Also extract the flushing of the caches to be outside of the kmap. [akpm@linux-foundation.org: fix nfs and ntfs build] [akpm@linux-foundation.org: fix ntfs build some more] Signed-off-by: Christoph Lameter Cc: Steven French Cc: Michael Halcrow Cc: Cc: Steven Whitehouse Cc: Trond Myklebust Cc: "J. Bruce Fields" Cc: Anton Altaparmakov Cc: Mark Fasheh Cc: David Chinner Cc: Michael Halcrow Cc: Steven French Cc: Steven Whitehouse Cc: Trond Myklebust Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c78bad11fbf1272ea021f56458025dc98486d6f4 Author: Joe Perches Date: Sun Feb 3 17:33:42 2008 +0200 fs/: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: Adrian Bunk commit 6b11d8179d1c6e560edc02c40a53b65fde83bf3f Author: Joel Becker Date: Mon Jan 28 18:52:04 2008 -0800 ocfs2: Fix userspace ABI breakage in sysfs The userspace ABI of ocfs2's internal cluster stack (o2cb) was broken by commit c60b71787982cefcf9fa09aa281fa8c4c685d557 "kset: convert ocfs2 to use kset_create". Specifically, the '/sys/o2cb' kset was moved to '/sys/fs/o2cb'. This breaks all ocfs2 tools and renders the filesystem unmountable. This fix moves '/sys/o2cb' back where it belongs. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 2fe5c1d7eb88830b09c863a4b5b3279dc120f3af Author: Mark Fasheh Date: Wed Jan 23 18:35:31 2008 -0800 ocfs2: clean up bh null checks If we know a buffer_head is non-null, then brelse() is unnecessary and put_bh() can be used instead. Also, an explicit check for NULL is unnecessary when using brelse(). This patch only covers buffer_head_io.c and resize.c, which have recently added code which exhibits this problem. Signed-off-by: Mark Fasheh commit 7ec373cf33533af6c50828a62f6b305c2d7fa931 Author: Mark Fasheh Date: Wed Jan 23 16:54:48 2008 -0800 ocfs2: document access rules for blocked_lock_list ocfs2_super->blocked_lock_list and ocfs2_super->blocked_lock_count have some usage restrictions which aren't immediately obvious to anyone reading the code. It's a good idea to document this so that we avoid making costly mistakes in the future. Signed-off-by: Mark Fasheh commit 0e5ae032030387bf0926aa980f2105646ead2b47 Author: Mark Fasheh Date: Tue Nov 6 15:52:58 2007 -0800 ocfs2: bump version number Bump the printed version to 1.5.0. This helps us quickly identify which version of Ocfs2 a bug filer is running. Signed-off-by: Mark Fasheh commit 2d4b1cbb44f5557727c35895a83f82d023573fa9 Author: Tao Ma Date: Thu Jan 10 15:20:55 2008 +0800 ocfs2/dlm: Clear joining_node on hearbeat node down Currently the process of dlm join contains 2 steps: query join and assert join. After query join, the joined node will set its joining_node. So if the joining node happens to panic before the 2nd step, the joined node will fail to clear its joining_node flag because that node isn't in the domain map. It at least cause 2 problems. 1. All the new join request will fail. So no new node can mount the volume. 2. The joined node can't umount the volume since during the umount process it has to wait for the joining_node to be unknown. So the umount will be hanged. The solution is to clear the joining_node before we check the domain map. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 4092d49f705aa19750c39758fa1be767e162c48d Author: Marcin Slusarz Date: Tue Dec 25 15:52:59 2007 +0100 ocfs2: convert byte order of constant instead of variable Convert byte order of constant instead of variable it will be done at compile time vs run time. Remove unused le32_and_cpu. Signed-off-by: Marcin Slusarz Signed-off-by: Mark Fasheh commit 17104683d262fc6ab58488c4a3f0415012acc636 Author: Sunil Mushran Date: Tue Nov 6 16:10:23 2007 -0800 ocfs2: Update default cluster timeouts Lots of people are having trouble with the default timeouts, which are too low. These new values are derived from an informal survey taken on ocfs2-users, as well as data from bug reports. This should reduce the amount of cluster disconnects and subsequent fencing seen during normal workloads. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit 634bf74d1e8a8d06727505ea4eb73e780d7aa246 Author: Jan Kara Date: Wed Dec 19 15:25:42 2007 +0100 ocfs2: printf fixes Explicitely convert loff_t to long long in printf. Just for sure... Signed-off-by: Jan Kara Signed-off-by: Mark Fasheh commit 32c3c0e2e515197ad240f5104116254975e6bbce Author: Jan Kara Date: Wed Dec 19 15:24:52 2007 +0100 ocfs2: Use generic_file_llseek We should use generic_file_llseek() and not default_llseek() so that s_maxbytes gets properly checked when seeking. Signed-off-by: Jan Kara Signed-off-by: Mark Fasheh commit d2849fb294d92d6eee0a811c688f1ecb39d26800 Author: Jan Kara Date: Wed Dec 19 15:24:09 2007 +0100 ocfs2: Safer read_inline_data() In ocfs2_read_inline_data() we should store file size in loff_t. Although the file size should fit in 32 bits we cannot be sure in case filesystem is corrupted. Signed-off-by: Jan Kara Signed-off-by: Mark Fasheh commit 5fa0613ea58a80f69852b242337121bd39dc798e Author: Jan Kara Date: Fri Jan 11 00:11:45 2008 +0100 ocfs2: Silence false lockdep warnings Create separate lockdep lock classes for system file's i_mutexes. They are used to guard allocations and similar things and thus rank differently than i_mutex of a regular file or directory. Signed-off-by: Jan Kara Signed-off-by: Mark Fasheh commit 53fc622b9e829c8e632e45ef8c14f054388759c1 Author: Mark Fasheh Date: Thu Dec 20 16:49:04 2007 -0800 [PATCH 2/2] ocfs2: cluster aware flock() Hook up ocfs2_flock(), using the new flock lock type in dlmglue.c. A new mount option, "localflocks" is added so that users can revert to old functionality as need be. Signed-off-by: Mark Fasheh commit cf8e06f1a860d8680d6bb4ac8ec7d7724988e46f Author: Mark Fasheh Date: Thu Dec 20 16:43:10 2007 -0800 [PATCH 1/2] ocfs2: add flock lock type This adds a new dlmglue lock type which is intended to back flock() requests. Since these locks are driven from userspace, usage rules are much more liberal than the typical Ocfs2 internal cluster lock. As a result, we can't make use of most dlmglue features - lock caching and lock level optimizations in particular. Additionally, userspace is free to deadlock itself, so we have to deal with that in the same way as the rest of the kernel - by allowing a signal to abort a lock request. In order to keep ocfs2_cluster_lock() complexity down, ocfs2_file_lock() does it's own dlm coordination. We still use the same helper functions though, so duplicated code is kept to a minimum. Signed-off-by: Mark Fasheh commit 2fbe8d1ebe004425b4f7b8bba345623d2280be82 Author: Sunil Mushran Date: Thu Dec 20 14:58:11 2007 -0800 ocfs2: Local alloc window size changeable via mount option Local alloc is a performance optimization in ocfs2 in which a node takes a window of bits from the global bitmap and then uses that for all small local allocations. This window size is fixed to 8MB currently. This patch allows users to specify the window size in MB including disabling it by passing in 0. If the number specified is too large, the fs will use the default value of 8MB. mount -o localalloc=X /dev/sdX /mntpoint Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit d147b3d630edef1d34de6ea819787a1ac1b8603b Author: Mark Fasheh Date: Wed Nov 7 14:40:36 2007 -0800 ocfs2: Support commit= mount option Mostly taken from ext3. This allows the user to set the jbd commit interval, in seconds. The default of 5 seconds stays the same, but now users can easily increase the commit interval. Typically, this would be increased in order to benefit performance at the expense of data-safety. Signed-off-by: Mark Fasheh commit 0957f00796157564281ea6ff2cea7ef4f897775a Author: Mark Fasheh Date: Tue Dec 18 18:58:18 2007 -0800 ocfs2: Add missing permission checks Check that an online resize is being driven by a user with permission to change system resource limits. Signed-off-by: Mark Fasheh commit 7909f2bf835376a20d6dbf853eb459a27566eba2 Author: Tao Ma Date: Tue Dec 18 15:47:25 2007 +0800 [PATCH 2/2] ocfs2: Implement group add for online resize This patch adds the ability for a userspace program to request that a properly formatted cluster group be added to the main allocation bitmap for an Ocfs2 file system. The request is made via an ioctl, OCFS2_IOC_GROUP_ADD. On a high level, this is similar to ext3, but we use a different ioctl as the structure which has to be passed through is different. During an online resize, tunefs.ocfs2 will format any new cluster groups which must be added to complete the resize, and call OCFS2_IOC_GROUP_ADD on each one. Kernel verifies that the core cluster group information is valid and then does the work of linking it into the global allocation bitmap. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit d659072f736837e56b6433d58e5315ad1d4d5ccf Author: Tao Ma Date: Tue Dec 18 15:47:03 2007 +0800 [PATCH 1/2] ocfs2: Add group extend for online resize This patch adds the ability for a userspace program to request an extend of last cluster group on an Ocfs2 file system. The request is made via ioctl, OCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is obviously Ocfs2 specific. tunefs.ocfs2 would call this for an online-resize operation if the last cluster group isn't full. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit e9d578a8f279d5e7d1e903f436aefc76ba330b43 Author: Tao Ma Date: Tue Dec 18 15:46:10 2007 +0800 ocfs2: Initalize bitmap_cpg of ocfs2_super to be the maximum. This value is initialized from global_bitmap->id2.i_chain.cl_cpg. If there is only 1 group, it will be equal to the total clusters in the volume. So as for online resize, it should change for all the nodes in the cluster. It isn't easy and there is no corresponding lock for it. bitmap_cpg is only used in 2 areas: 1. Check whether the suballoc is too large for us to allocate from the global bitmap, so it is little used. And now the suballoc size is 2048, it rarely meet this situation and the check is almost useless. 2. Calculate which group a cluster belongs to. We use it during truncate to figure out which cluster group an extent belongs too. But we should be OK if we increase it though as the cluster group calculated shouldn't change and we only ever have a small bitmap_cpg on file systems with a single cluster group. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 628a24f5bdf31b795d596eaed71670579b96a9aa Author: Mark Fasheh Date: Tue Oct 30 12:08:32 2007 -0700 ocfs2: Readpages support Add ->readpages support to Ocfs2. This is rather trivial - all it required is a small update to ocfs2_get_block (for mapping full extents via b_size) and an ocfs2_readpages() function which partially mirrors ocfs2_readpage(). Signed-off-by: Mark Fasheh commit e63aecb651ba73dffc62f9608ee1b7ae2a0ffd4b Author: Mark Fasheh Date: Thu Oct 18 15:30:42 2007 -0700 ocfs2: Rename ocfs2_meta_[un]lock Call this the "inode_lock" now, since it covers both data and meta data. This patch makes no functional changes. Signed-off-by: Mark Fasheh commit c934a92d05b549dd2f25db72c5fc3cb9dcf1b611 Author: Mark Fasheh Date: Thu Oct 18 15:23:46 2007 -0700 ocfs2: Remove data locks The meta lock now covers both meta data and data, so this just removes the now-redundant data lock. Combining locks saves us a round of lock mastery per inode and one less lock to ping between nodes during read/write. We don't lose much - since meta locks were always held before a data lock (and at the same level) ordered writeout mode (the default) ensured that flushing for the meta data lock also pushed out data anyways. Signed-off-by: Mark Fasheh commit f1f540688eae66c274ff1c1133b5d9c687b28f58 Author: Mark Fasheh Date: Thu Oct 18 15:13:59 2007 -0700 ocfs2: Add data downconvert worker to inode lock In order to extend inode lock coverage to inode data, we use the same data downconvert worker with only a small modification to only do work for regular files. Signed-off-by: Mark Fasheh commit 34d024f84345807bf44163fac84e921513dde323 Author: Mark Fasheh Date: Mon Sep 24 15:56:19 2007 -0700 ocfs2: Remove mount/unmount votes The node maps that are set/unset by these votes are no longer relevant, thus we can remove the mount and umount votes. Since those are the last two remaining votes, we can also remove the entire vote infrastructure. The vote thread has been renamed to the downconvert thread, and the small amount of functionality related to managing it has been moved into fs/ocfs2/dlmglue.c. All references to votes have been removed or updated. Signed-off-by: Mark Fasheh commit 6f7b056ea9c6fa978c79ca626eff43549df94dbb Author: Mark Fasheh Date: Mon Sep 24 15:09:41 2007 -0700 ocfs2: Remove fs dependency on ocfs2_heartbeat module Now that the dlm exposes domain information to us, we don't need generic node up / node down callbacks. And since the DLM is only telling us when a node goes down unexpectedly, we no longer need to optimize away node down callbacks via the umount map. Signed-off-by: Mark Fasheh commit 6561168cb442be8d2769dce663870b6a28573e16 Author: Mark Fasheh Date: Fri Sep 7 11:11:10 2007 -0700 ocfs2_dlm: Call node eviction callbacks from heartbeat handler With this, a dlm client can take advantage of the group protocol in the dlm to get full notification whenever a node within the dlm domain leaves unexpectedly. Signed-off-by: Mark Fasheh commit c60b71787982cefcf9fa09aa281fa8c4c685d557 Author: Greg Kroah-Hartman Date: Fri Nov 2 16:19:59 2007 -0700 kset: convert ocfs2 to use kset_create Dynamically create the kset instead of declaring it statically. Also use the new kobj_attribute which cleans up this file a _lot_. Cc: Kay Sievers Cc: Mark Fasheh Cc: Kurt Hackel Signed-off-by: Greg Kroah-Hartman commit 3514faca19a6fdc209734431c509631ea92b094e Author: Greg Kroah-Hartman Date: Tue Oct 16 10:11:44 2007 -0600 kobject: remove struct kobj_type from struct kset We don't need a "default" ktype for a kset. We should set this explicitly every time for each kset. This change is needed so that we can make ksets dynamic, and cleans up one of the odd, undocumented assumption that the kset/kobject/ktype model has. This patch is based on a lot of help from Kay Sievers. Nasty bug in the block code was found by Dave Young Cc: Kay Sievers Cc: Dave Young Signed-off-by: Greg Kroah-Hartman