|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1 |
|
| #
cb787f4a |
| 27-Sep-2024 |
Al Viro <[email protected]> |
[tree-wide] finally take no_llseek out
no_llseek had been defined to NULL two years ago, in commit 868941b14441 ("fs: remove no_llseek")
To quote that commit,
At -rc1 we'll need do a mechanical
[tree-wide] finally take no_llseek out
no_llseek had been defined to NULL two years ago, in commit 868941b14441 ("fs: remove no_llseek")
To quote that commit,
At -rc1 we'll need do a mechanical removal of no_llseek -
git grep -l -w no_llseek | grep -v porting.rst | while read i; do sed -i '/\<no_llseek\>/d' $i done
would do it.
Unfortunately, that hadn't been done. Linus, could you do that now, so that we could finally put that thing to rest? All instances are of the form .llseek = no_llseek, so it's obviously safe.
Signed-off-by: Al Viro <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
show more ...
|
|
Revision tags: v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4 |
|
| #
4f5957a9 |
| 10-Jun-2024 |
David Teigland <[email protected]> |
dlm: change list and timer names
The old terminology of "toss" and "keep" is no longer an accurate description of the rsb states and lists, so change the names to "inactive" and "active". The old n
dlm: change list and timer names
The old terminology of "toss" and "keep" is no longer an accurate description of the rsb states and lists, so change the names to "inactive" and "active". The old names had also been copied into the scanning code, which is changed back to use the "scan" name.
- "active" rsb structs have lkb's attached, and are ref counted. - "inactive" rsb structs have no lkb's attached, are not ref counted. - "scan" list is for rsb's that can be freed after a timeout period. - "slow" lists are for infrequent iterations through active or inactive rsb structs. - inactive rsb structs that are directory records will not be put on the scan list, since they are not freed based on timeouts. - inactive rsb structs that are not directory records will be put on the scan list to be freed, since they are not longer needed.
Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5 |
|
| #
e9131359 |
| 15-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: use rwlock for rsb hash table
The conversion to rhashtable introduced a hash table lock per lockspace, in place of per bucket locks. To make this more scalable, switch to using a rwlock for ha
dlm: use rwlock for rsb hash table
The conversion to rhashtable introduced a hash table lock per lockspace, in place of per bucket locks. To make this more scalable, switch to using a rwlock for hash table access. The common case fast path uses it as a read lock.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
93a693d1 |
| 15-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: add rsb lists for iteration
To prepare for using rhashtable, add two rsb lists for iterating through rsb's in two uncommon cases where this is necesssary: - when dumping rsb state from debugfs,
dlm: add rsb lists for iteration
To prepare for using rhashtable, add two rsb lists for iterating through rsb's in two uncommon cases where this is necesssary: - when dumping rsb state from debugfs, now using seq_list. - when looking at all rsb's during recovery.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
2d903540 |
| 15-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: merge toss and keep hash table lists into one list
There are several places where lock processing can perform two hash table lookups, first in the "keep" list, and if not found, in the "toss" l
dlm: merge toss and keep hash table lists into one list
There are several places where lock processing can perform two hash table lookups, first in the "keep" list, and if not found, in the "toss" list. This patch introduces a new rsb state flag "RSB_TOSS" to represent the difference between the state of being on keep vs toss list, so that the two lists can be combined. This avoids cases of two lookups.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
dcdaad05 |
| 15-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: change to single hashtable lock
Prepare to replace our own hash table with rhashtable by replacing the per-bucket locks in our own hash table with a single lock.
Signed-off-by: Alexander Aring
dlm: change to single hashtable lock
Prepare to replace our own hash table with rhashtable by replacing the per-bucket locks in our own hash table with a single lock.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc4, v6.9-rc3 |
|
| #
578acf9a |
| 02-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: use spin_lock_bh for message processing
Use spin_lock_bh for all spinlocks involved in message processing, in preparation for softirq message processing. DLM lock requests from user space invo
dlm: use spin_lock_bh for message processing
Use spin_lock_bh for all spinlocks involved in message processing, in preparation for softirq message processing. DLM lock requests from user space involve dlm processing in user context, in addition to the standard kernel context, necessitating bh variants.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
097691db |
| 02-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: convert ls_waiters_mutex to spinlock
Convert the waiters mutex to a spinlock in prepration for processing messages in softirq context.
Signed-off-by: Alexander Aring <[email protected]> Sign
dlm: convert ls_waiters_mutex to spinlock
Convert the waiters mutex to a spinlock in prepration for processing messages in softirq context.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
6b52ea79 |
| 02-Apr-2024 |
Alexander Aring <[email protected]> |
dlm: drop mutex use in waiters recovery
The waiters_mutex no longer needs to be used in the waiters recovery functions dlm_recover_waiters_pre() and dlm_recover_waiters_pre(). During recovery, ordin
dlm: drop mutex use in waiters recovery
The waiters_mutex no longer needs to be used in the waiters recovery functions dlm_recover_waiters_pre() and dlm_recover_waiters_pre(). During recovery, ordinary locking operations are paused, and the recovery thread is the only context accessing the waiters list, so the lock is not needed.
Access to the waiters list from debugfs functions is avoided by taking the top level recovery lock in the debugfs dump function.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc2 |
|
| #
2bec1bbd |
| 28-Mar-2024 |
Alexander Aring <[email protected]> |
dlm: remove callback reference counting
Get rid of the unnecessary refcounting on callback structs. Copy interesting callback info into the lkb struct rather than maintaining pointers to callback st
dlm: remove callback reference counting
Get rid of the unnecessary refcounting on callback structs. Copy interesting callback info into the lkb struct rather than maintaining pointers to callback structs from the lkb. This goes back to the way things were done prior to commit 61bed0baa4db ("fs: dlm: use a non-static queue for callbacks").
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
16e98462 |
| 28-Mar-2024 |
Alexander Aring <[email protected]> |
dlm: remove callback queue debugfs functionality
Remove the ability to dump pending lkb callbacks from debugfs. The prepares for separating lkb structs from callbacks.
Signed-off-by: Alexander Arin
dlm: remove callback queue debugfs functionality
Remove the ability to dump pending lkb callbacks from debugfs. The prepares for separating lkb structs from callbacks.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7 |
|
| #
5beebc1d |
| 20-Dec-2023 |
Alexander Aring <[email protected]> |
dlm: update format header reflect current format
Over the time the dlm debugfs format string has been changed but the header wasn't updated. This patch changes the first line dump header and their m
dlm: update format header reflect current format
Over the time the dlm debugfs format string has been changed but the header wasn't updated. This patch changes the first line dump header and their meaning to reflect the current formats.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
367e753d |
| 20-Dec-2023 |
Alexander Aring <[email protected]> |
dlm: fix format seq ops type 4
This patch fixes to set the type 4 format ops in case of table_open4(). It got accidentially changed by commit 541adb0d4d10 ("fs: dlm: debugfs for queued callbacks") a
dlm: fix format seq ops type 4
This patch fixes to set the type 4 format ops in case of table_open4(). It got accidentially changed by commit 541adb0d4d10 ("fs: dlm: debugfs for queued callbacks") and since them toss debug dumps the same format as format 5 that are the queued ast callbacks for lkbs.
Fixes: 541adb0d4d10 ("fs: dlm: debugfs for queued callbacks") Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6 |
|
| #
bc15bec1 |
| 10-Oct-2023 |
Christophe JAILLET <[email protected]> |
fs: dlm: Remove some useless memset()
There is no need to clear the buffer used to build the file name.
snprintf() already guarantees that it is NULL terminated and such a (useless) precaution was
fs: dlm: Remove some useless memset()
There is no need to clear the buffer used to build the file name.
snprintf() already guarantees that it is NULL terminated and such a (useless) precaution was not done for the first string (i.e ls_debug_rsb_dentry)
So, save a few LoC.
Signed-off-by: Christophe JAILLET <[email protected]> Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
b859e010 |
| 10-Oct-2023 |
Christophe JAILLET <[email protected]> |
fs: dlm: Fix the size of a buffer in dlm_create_debug_file()
8 is not the maximum size of the suffix used when creating debugfs files.
Let the compiler compute the correct size, and only give a hin
fs: dlm: Fix the size of a buffer in dlm_create_debug_file()
8 is not the maximum size of the suffix used when creating debugfs files.
Let the compiler compute the correct size, and only give a hint about the longest possible string that is used.
When building with W=1, this fixes the following warnings:
fs/dlm/debug_fs.c: In function ‘dlm_create_debug_file’: fs/dlm/debug_fs.c:1020:58: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=] 1020 | snprintf(name, DLM_LOCKSPACE_LEN + 8, "%s_waiters", ls->ls_name); | ^ fs/dlm/debug_fs.c:1020:9: note: ‘snprintf’ output between 9 and 73 bytes into a destination of size 72 1020 | snprintf(name, DLM_LOCKSPACE_LEN + 8, "%s_waiters", ls->ls_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/dlm/debug_fs.c:1031:50: error: ‘_queued_asts’ directive output may be truncated writing 12 bytes into a region of size between 8 and 72 [-Werror=format-truncation=] 1031 | snprintf(name, DLM_LOCKSPACE_LEN + 8, "%s_queued_asts", ls->ls_name); | ^~~~~~~~~~~~ fs/dlm/debug_fs.c:1031:9: note: ‘snprintf’ output between 13 and 77 bytes into a destination of size 72 1031 | snprintf(name, DLM_LOCKSPACE_LEN + 8, "%s_queued_asts", ls->ls_name); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixes: 541adb0d4d10b ("fs: dlm: debugfs for queued callbacks") Signed-off-by: Christophe JAILLET <[email protected]> Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
19b3102c |
| 10-Oct-2023 |
Christophe JAILLET <[email protected]> |
fs: dlm: Simplify buffer size computation in dlm_create_debug_file()
Use sizeof(name) instead of the equivalent, but hard coded, DLM_LOCKSPACE_LEN + 8.
This is less verbose and more future proof.
fs: dlm: Simplify buffer size computation in dlm_create_debug_file()
Use sizeof(name) instead of the equivalent, but hard coded, DLM_LOCKSPACE_LEN + 8.
This is less verbose and more future proof.
Signed-off-by: Christophe JAILLET <[email protected]> Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5 |
|
| #
541adb0d |
| 01-Aug-2023 |
Alexander Aring <[email protected]> |
fs: dlm: debugfs for queued callbacks
It was useful to debug an issue with the callback queue to check if any callbacks in any lkb are for some reason not processed by the callback workqueue. The me
fs: dlm: debugfs for queued callbacks
It was useful to debug an issue with the callback queue to check if any callbacks in any lkb are for some reason not processed by the callback workqueue. The mentioned issue was fixed by commit a034c1370ded ("fs: dlm: fix DLM_IFL_CB_PENDING gets overwritten"). If there are similar issue that looks like a ast callback was not processed, we can confirm now that it is not sitting to be processed by the callback workqueue anymore.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4, v6.3-rc3, v6.3-rc2 |
|
| #
e1af8728 |
| 06-Mar-2023 |
Alexander Aring <[email protected]> |
fs: dlm: move internal flags to atomic ops
This patch will move the lkb_flags value to the recently introduced lkb_iflags value. For lkb_iflags we use atomic bit operations because some flags like D
fs: dlm: move internal flags to atomic ops
This patch will move the lkb_flags value to the recently introduced lkb_iflags value. For lkb_iflags we use atomic bit operations because some flags like DLM_IFL_CB_PENDING are used while non rsb lock is held to avoid issues with other flag manipulations which might run at the same time we switch to atomic bit operations. Snapshot the bit values to an uint32_t value is only used for debugging/logging use cases and don't need to be 100% correct.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
8a39dcd9 |
| 06-Mar-2023 |
Alexander Aring <[email protected]> |
fs: dlm: change dflags to use atomic bits
Currently manipulating lkb_dflags assumes to held the rsb lock assigned to the lkb. This is held by dlm message processing after certain time to lookup the
fs: dlm: change dflags to use atomic bits
Currently manipulating lkb_dflags assumes to held the rsb lock assigned to the lkb. This is held by dlm message processing after certain time to lookup the right rsb from the received lkb message id. For user space locks flags, which is currently the only use case for lkb_dflags, flags are also being set during dlm character device handling without holding the rsb lock. To minimize the risk that bit operations are getting corrupted we switch to atomic bit operations. This patch will also introduce helpers to snapshot atomic bit values in an non atomic way. There might be still issues with the flag handling e.g. running in case of manipulating bit ops and snapshot them at the same time, but this patch minimize them and will start to use atomic bit operations.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
8c11ba64 |
| 06-Mar-2023 |
Alexander Aring <[email protected]> |
fs: dlm: store lkb distributed flags into own value
This patch stores lkb distributed flags value in an separate value instead of sharing internal and distributed flags in lkb->lkb_flags value. This
fs: dlm: store lkb distributed flags into own value
This patch stores lkb distributed flags value in an separate value instead of sharing internal and distributed flags in lkb->lkb_flags value. This has the advantage to not mask/write back flag values in receive_flags() functionality. The dlm debug_fs does not provide the distributed flags anymore, those can be added in future.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3 |
|
| #
61bed0ba |
| 27-Oct-2022 |
Alexander Aring <[email protected]> |
fs: dlm: use a non-static queue for callbacks
This patch will introducde a queue implementation for callbacks by using the Linux lists. The current callback queue handling is implemented by a static
fs: dlm: use a non-static queue for callbacks
This patch will introducde a queue implementation for callbacks by using the Linux lists. The current callback queue handling is implemented by a static limit of 6 entries, see DLM_CALLBACKS_SIZE. The sequence number inside the callback structure was used to see if the entries inside the static entry is valid or not. We don't need any sequence numbers anymore with a dynamic datastructure with grows and shrinks during runtime to offer such functionality.
We assume that every callback will be delivered to the DLM user if once queued. Therefore the callback flag DLM_CB_SKIP was dropped and the check for skipping bast was moved before worker handling and not skip while the callback worker executes. This will reduce unnecessary queues of the callback worker.
All last callback saves are pointers now and don't need to copied over. There is a reference counter for callback structures which will care about to free the callback structures at the right time if they are not referenced anymore.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
|
Revision tags: v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2, v5.19-rc1, v5.18, v5.18-rc7, v5.18-rc6, v5.18-rc5, v5.18-rc4, v5.18-rc3, v5.18-rc2, v5.18-rc1, v5.17, v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5, v5.17-rc4, v5.17-rc3, v5.17-rc2, v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1 |
|
| #
6a628fa4 |
| 12-Nov-2021 |
Alexander Aring <[email protected]> |
fs: dlm: fix potential buffer overflow
This patch fixes an potential overflow in sscanf and the maximum declared string parsing length which seems to be excluding the null termination symbol. This p
fs: dlm: fix potential buffer overflow
This patch fixes an potential overflow in sscanf and the maximum declared string parsing length which seems to be excluding the null termination symbol. This patch will just add one byte to be prepared on a string with length of DLM_RESNAME_MAXLEN including the null termination symbol.
Fixes: 5054e79de999 ("fs: dlm: add lkb debugfs functionality") Reported-by: kernel test robot <[email protected]> Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
63eab2b0 |
| 02-Nov-2021 |
Alexander Aring <[email protected]> |
fs: dlm: add lkb waiters debugfs functionality
This patch adds functionality to put a lkb to the waiters state. It can be useful to combine this feature with the "rawmsg" debugfs functionality. It w
fs: dlm: add lkb waiters debugfs functionality
This patch adds functionality to put a lkb to the waiters state. It can be useful to combine this feature with the "rawmsg" debugfs functionality. It will bring the DLM lkb into a state that a message will be parsed by the kernel.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
5054e79d |
| 02-Nov-2021 |
Alexander Aring <[email protected]> |
fs: dlm: add lkb debugfs functionality
This patch adds functionality to add an lkb during runtime. This is a highly debugging feature only, wrong input can crash the kernel. It is a early state feat
fs: dlm: add lkb debugfs functionality
This patch adds functionality to add an lkb during runtime. This is a highly debugging feature only, wrong input can crash the kernel. It is a early state feature as well. The goal is to provide a user interface for manipulate dlm state and combine it with the rawmsg feature. It is debugfs functionality, we don't care about UAPI breakage. Even it's possible to add lkb's/rsb's which could never be exists in such wat by using normal DLM operation. The user of this interface always need to think before using this feature, not every crash which happens can really occur during normal dlm operation.
Future there should be more functionality to add a more realistic lkb which reflects normal DLM state inside the kernel. For now this is enough.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|
| #
9af5b8f0 |
| 02-Nov-2021 |
Alexander Aring <[email protected]> |
fs: dlm: add debugfs rawmsg send functionality
This patch adds a dlm functionality to send a raw dlm message to a specific cluster node. This raw message can be build by user space and send out by w
fs: dlm: add debugfs rawmsg send functionality
This patch adds a dlm functionality to send a raw dlm message to a specific cluster node. This raw message can be build by user space and send out by writing the message to "rawmsg" dlm debugfs file.
There is a in progress scapy dlm module which provides a easy build of DLM messages in user space. For example:
DLM(h_cmd=3, o_nextcmd=1, h_nodeid=1, h_lockspace=0xe4f48a18, ...)
The goal is to provide an easy reproducable state to crash DLM or to fuzz the DLM kernel stack if there are possible ways to crash it.
Note: that if the sequence number is zero and dlm version is not set to 3.1 the kernel will automatic will set a right sequence number, otherwise DLM stack testing is not possible.
Signed-off-by: Alexander Aring <[email protected]> Signed-off-by: David Teigland <[email protected]>
show more ...
|