- 15 5月, 2012 1 次提交
-
-
由 Dan Carpenter 提交于
We aren't allowed to pass NULL pointers to kmem_cache_destroy() so if both allocations fail, it leads to a NULL dereference. Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 03 5月, 2012 1 次提交
-
-
由 David Teigland 提交于
The "nodir" mode (statically assign master nodes instead of using the resource directory) has always been highly experimental, and never seriously used. This commit fixes a number of problems, making nodir much more usable. - Major change to recovery: recover all locks and restart all in-progress operations after recovery. In some cases it's not possible to know which in-progess locks to recover, so recover all. (Most require recovery in nodir mode anyway since rehashing changes most master nodes.) - Change the way nodir mode is enabled, from a command line mount arg passed through gfs2, into a sysfs file managed by dlm_controld, consistent with the other config settings. - Allow recovering MSTCPY locks on an rsb that has not yet been turned into a master copy. - Ignore RCOM_LOCK and RCOM_LOCK_REPLY recovery messages from a previous, aborted recovery cycle. Base this on the local recovery status not being in the state where any nodes should be sending LOCK messages for the current recovery cycle. - Hold rsb lock around dlm_purge_mstcpy_locks() because it may run concurrently with dlm_recover_master_copy(). - Maintain highbast on process-copy lkb's (in addition to the master as is usual), because the lkb can switch back and forth between being a master and being a process copy as the master node changes in recovery. - When recovering MSTCPY locks, flag rsb's that have non-empty convert or waiting queues for granting at the end of recovery. (Rename flag from LOCKS_PURGED to RECOVER_GRANT and similar for the recovery function, because it's not only resources with purged locks that need grant a grant attempt.) - Replace a couple of unnecessary assertion panics with error messages. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 27 4月, 2012 5 次提交
-
-
由 David Teigland 提交于
Change some existing error/debug messages to collect more useful information, and add some new error/debug messages to address recently found problems. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
If the rsb is found in the "keep" tree, but is not the right type (i.e. not MASTER), we can return immediately with the result. There's no point in going on to search the "toss" list as if we hadn't found it. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
Unify the checking for both types of ignored rcom messages, and replace the two log_debug statements with a single, rate limited debug message. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
An outstanding remote operation (an lkb on the "waiter" list) could sometimes miss being resent during recovery. The decision was based on the lkb_nodeid field, which could have changed during an earlier aborted recovery, so it no longer represents the actual remote destination. The lkb_wait_nodeid is always the actual remote node, so it is the best value to use. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
During lowcomms shutdown, a new connection could possibly be created, and attempt to use a workqueue that's been destroyed. Similarly, during startup, a new connection could attempt to use a workqueue that's not been set up yet. Add a global variable to indicate when new connections are allowed. Based on patch by: Christine Caulfield <ccaulfie@redhat.com> Reported-by: Ndann frazier <dann.frazier@canonical.com> Reviewed-by: Ndann frazier <dann.frazier@canonical.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 24 4月, 2012 1 次提交
-
-
由 David Teigland 提交于
The QUECVT flag should not prevent conversions from being granted immediately when the convert queue is empty. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 06 4月, 2012 1 次提交
-
-
由 Stephen Boyd 提交于
Many users of debugfs copy the implementation of default_open() when they want to support a custom read/write function op. This leads to a proliferation of the default_open() implementation across the entire tree. Now that the common implementation has been consolidated into libfs we can replace all the users of this function with simple_open(). This replacement was done with the following semantic patch: <smpl> @ open @ identifier open_f != simple_open; identifier i, f; @@ -int open_f(struct inode *i, struct file *f) -{ ( -if (i->i_private) -f->private_data = i->i_private; | -f->private_data = i->i_private; ) -return 0; -} @ has_open depends on open @ identifier fops; identifier open.open_f; @@ struct file_operations fops = { ... -.open = open_f, +.open = simple_open, ... }; </smpl> [akpm@linux-foundation.org: checkpatch fixes] Signed-off-by: NStephen Boyd <sboyd@codeaurora.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Julia Lawall <Julia.Lawall@lip6.fr> Acked-by: NIngo Molnar <mingo@elte.hu> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 21 3月, 2012 1 次提交
-
-
由 David Teigland 提交于
The last element of dlm_local_addr[DLM_MAX_ADDR_COUNT] was not used because the loop ended at COUNT - 1. Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 09 3月, 2012 2 次提交
-
-
由 Benjamin Poirier 提交于
avoids allocating a fd that a) propagates to every kernel thread and usermodehelper b) is not properly released. References: http://article.gmane.org/gmane.linux.network.drbd/22529Signed-off-by: NBenjamin Poirier <bpoirier@suse.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 David Teigland 提交于
The function used to find an rsb during directory recovery was searching the single linear list of rsb's. This wasted a lot of time compared to using the standard hash table to find the rsb. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 04 1月, 2012 3 次提交
-
-
由 David Teigland 提交于
These new callbacks notify the dlm user about lock recovery. GFS2, and possibly others, need to be aware of when the dlm will be doing lock recovery for a failed lockspace member. In the past, this coordination has been done between dlm and file system daemons in userspace, which then direct their kernel counterparts. These callbacks allow the same coordination directly, and more simply. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
Slot numbers are assigned to nodes when they join the lockspace. The slot number chosen is the minimum unused value starting at 1. Once a node is assigned a slot, that slot number will not change while the node remains a lockspace member. If the node leaves and rejoins it can be assigned a new slot number. A new generation number is also added to a lockspace. It is set and incremented during each recovery along with the slot collection/assignment. The slot numbers will be passed to gfs2 which will use them as journal id's. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
Put all the calls to recovery barriers in the same function to clarify where they each happen. Should not change any behavior. Also modify some recovery debug lines to make them consistent. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 23 11月, 2011 1 次提交
-
-
由 Alexey Dobriyan 提交于
C assignment can handle struct in6_addr copying. Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 19 11月, 2011 1 次提交
-
-
由 Bob Peterson 提交于
Change the linked lists to rb_tree's in the rsb hash table to speed up searches. Slow rsb searches were having a large impact on gfs2 performance due to the large number of dlm locks gfs2 uses. Signed-off-by: NBob Peterson <rpeterso@redhat.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 21 7月, 2011 1 次提交
-
-
由 J. Bruce Fields 提交于
Both the filesystem and the lock manager can associate operations with a lock. Confusingly, one of them (fl_release_private) actually has the same name in both operation structures. It would save some confusion to give the lock-manager ops different names. Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
-
- 20 7月, 2011 1 次提交
-
-
由 David Teigland 提交于
Allow multiple workqueue items (locks with callbacks) to be processed concurrently. There should be no reason not to take advantage of this workqueue feature. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 16 7月, 2011 1 次提交
-
-
由 David Teigland 提交于
Instead of creating our own kthread (dlm_astd) to deliver callbacks for all lockspaces, use a per-lockspace workqueue to deliver the callbacks. This eliminates complications and slowdowns from many lockspaces sharing the same thread. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 15 7月, 2011 1 次提交
-
-
由 David Teigland 提交于
gfs2 recently began using this feature heavily, creating more debug output than we want to see. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 13 7月, 2011 1 次提交
-
-
由 David Teigland 提交于
By pre-allocating rsb structs before searching the hash table, they can be inserted immediately. This avoids always having to repeat the search when adding the struct to hash list. This also adds space to the rsb struct for a max resource name, so an rsb allocation can be used by any request. The constant size also allows us to finally use a slab for the rsb structs. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 11 7月, 2011 3 次提交
-
-
由 David Teigland 提交于
This is simpler and quicker than the hash table, and avoids needing to search the hash list for every new lkid to check if it's used. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
The gfp and size args were switched. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 Jesper Juhl 提交于
In fs/dlm/lock.c in the dlm_scan_waiters() function there are 3 small issues: 1) There's no need to test the return value of the allocation and do a memset if is succeedes. Just use kzalloc() to obtain zeroed memory. 2) Since kfree() handles NULL pointers gracefully, the test of 'warned' against NULL before the kfree() after the loop is completely pointless. Remove it. 3) The arguments to kmalloc() (now kzalloc()) were swapped. Thanks to Dr. David Alan Gilbert for pointing this out. Signed-off-by: NJesper Juhl <jj@chaosbits.net> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 07 7月, 2011 1 次提交
-
-
由 Masatake YAMATO 提交于
When the dlm fails to make a network connection to another node, include the address of the node in the error message. Signed-off-by: NMasatake YAMATO <yamato@redhat.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 02 7月, 2011 1 次提交
-
-
由 Bryn M. Reeves 提交于
Allocate dlm hash tables in the vmalloc area to allow a greater maximum size without restructuring of the hash table code. Signed-off-by: NBryn M. Reeves <bmr@redhat.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 01 7月, 2011 1 次提交
-
-
由 Masatake YAMATO 提交于
Display all addresses the dlm is using for the local node from the configfs file config/dlm/<cluster>/comms/<comm>/addr_list Also make the addr file write only. Signed-off-by: NMasatake YAMATO <yamato@redhat.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 26 5月, 2011 1 次提交
-
-
由 Michal Marek 提交于
The kernel already prints its build timestamp during boot, no need to repeat it in random drivers and produce different object files each time. Cc: Christine Caulfield <ccaulfie@redhat.com> Cc: David Teigland <teigland@redhat.com> Cc: cluster-devel@redhat.com Signed-off-by: NMichal Marek <mmarek@suse.cz>
-
- 23 5月, 2011 1 次提交
-
-
由 David Teigland 提交于
Allow processes blocked on plock requests to be interrupted when they are killed. This leaves the problem of cleaning up the lock state in userspace. This has three parts: 1. Add a flag to unlock operations sent to userspace indicating the file is being closed. Userspace will then look for and clear any waiting plock operations that were abandoned by an interrupted process. 2. Queue an unlock-close operation (like in 1) to clean up userspace from an interrupted plock request. This is needed because the vfs will not send a cleanup-unlock if it sees no locks on the file, which it won't if the interrupted operation was the only one. 3. Do not use replies from userspace for unlock-close operations because they are unnecessary (they are just cleaning up for the process which did not make an unlock call). This also simplifies the new unlock-close generated from point 2. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 05 4月, 2011 1 次提交
-
-
由 David Teigland 提交于
kmalloc a stub message struct during recovery instead of sharing the struct in the lockspace. This leaves the lockspace stub_ms only for faking downconvert replies, where it is never modified and sharing is not a problem. Also improve the debug messages in the same recovery function. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 02 4月, 2011 1 次提交
-
-
由 David Teigland 提交于
Add an option (disabled by default) to print a warning message when a lock has been waiting a configurable amount of time for a reply message from another node. This is mainly for debugging. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 28 3月, 2011 1 次提交
-
-
由 Matt Fleming 提交于
recalc_sigpending() is called within sigprocmask(), so there is no need call it again after sigprocmask() has returned. Signed-off-by: NMatt Fleming <matt.fleming@linux.intel.com> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 11 3月, 2011 3 次提交
-
-
由 David Teigland 提交于
Replaces deprecated create_singlethread_workqueue(). Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
Make all three hash tables a consistent size of 1024 rather than 1024, 512, 256. All three tables, for resources, locks, and lock dir entries, will generally be filled to the same order of magnitude. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
由 David Teigland 提交于
Change how callbacks are recorded for locks. Previously, information about multiple callbacks was combined into a couple of variables that indicated what the end result should be. In some situations, we could not tell from this combined state what the exact sequence of callbacks were, and would end up either delivering the callbacks in the wrong order, or suppress redundant callbacks incorrectly. This new approach records all the data for each callback, leaving no uncertainty about what needs to be delivered. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 12 2月, 2011 1 次提交
-
-
由 David Teigland 提交于
The recent commit to use cmwq for send and recv threads dcce240e introduced problems, apparently due to multiple workqueue threads. Single threads make the problems go away, so return to that until we fully understand the concurrency issues with multiple threads. Signed-off-by: NDavid Teigland <teigland@redhat.com>
-
- 17 1月, 2011 1 次提交
-
-
由 Nicholas Bellinger 提交于
This patch fixes the following kconfig error after changing CONFIGFS_FS -> select SYSFS: fs/sysfs/Kconfig:1:error: recursive dependency detected! fs/sysfs/Kconfig:1: symbol SYSFS is selected by CONFIGFS_FS fs/configfs/Kconfig:1: symbol CONFIGFS_FS is selected by DLM fs/dlm/Kconfig:1: symbol DLM depends on SYSFS Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org> Cc: Joel Becker <jlbec@evilplan.org> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: James Bottomley <James.Bottomley@suse.de>
-
- 14 12月, 2010 1 次提交
-
-
由 Namhyung Kim 提交于
The create_workqueue() returns NULL if failed rather than ERR_PTR(). Fix error checking and remove unnecessary variable 'error'. Signed-off-by: NNamhyung Kim <namhyung@gmail.com> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: NDavid Teigland <teigland@redhat.com>
-