projects/linux·commit 0de1e842

Merge tag 'dlm-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm

0de1e842 · Linus Torvalds <[email protected]> · 2025-03-27 13:04:31 -07:00

Pull dlm updates from David Teigland:

 - two fixes to the recent rcu lookup optimizations

 - a change allowing TCP to be configured with the first of multiple IP
   address

* tag 'dlm-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
  dlm: make tcp still work in multi-link env
  dlm: fix error if active rsb is not hashed
  dlm: fix error if inactive rsb is not hashed
  dlm: prevent NPD when writing a positive value to event_done
  dlm: increase max number of links for corosync3/knet
Commit
0de1e84263a2cc47fc642bcccee589a1e5220792
Parents
81d8e5e2 · 03d2b622

Merge commit. Changes below are compared with the first parent: 81d8e5e2.

Changes

4 files changed · +6 −4

FileStatusAddDelContent
fs/dlm/config.hmodified+1−1View file
fs/dlm/lock.cmodified+2−0View file
fs/dlm/lockspace.cmodified+1−1View file
fs/dlm/lowcomms.cmodified+2−2View file

fs/dlm/config.h

View file
diff --git a/fs/dlm/config.h b/fs/dlm/config.h
index e48c4f9..13a3d0b 100644
--- a/fs/dlm/config.h
+++ b/fs/dlm/config.h
@@ -23,7 +23,7 @@ struct dlm_config_node {
extern const struct rhashtable_params dlm_rhash_rsb_params;
-#define DLM_MAX_ADDR_COUNT 3
+#define DLM_MAX_ADDR_COUNT 8
#define DLM_PROTO_TCP 0
#define DLM_PROTO_SCTP 1

fs/dlm/lock.c

View file
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index c8ff88f..e01d5f2 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -741,6 +741,7 @@ static int find_rsb_dir(struct dlm_ls *ls, const void *name, int len,
read_lock_bh(&ls->ls_rsbtbl_lock);
if (!rsb_flag(r, RSB_HASHED)) {
read_unlock_bh(&ls->ls_rsbtbl_lock);
+ error = -EBADR;
goto do_new;
}
@@ -784,6 +785,7 @@ static int find_rsb_dir(struct dlm_ls *ls, const void *name, int len,
}
} else {
write_unlock_bh(&ls->ls_rsbtbl_lock);
+ error = -EBADR;
goto do_new;
}

fs/dlm/lockspace.c

View file
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index 8afac6e..1929327 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -576,7 +576,7 @@ static int new_lockspace(const char *name, const char *cluster,
lockspace to start running (via sysfs) in dlm_ls_start(). */
error = do_uevent(ls, 1);
- if (error)
+ if (error < 0)
goto out_recoverd;
/* wait until recovery is successful or failed */

fs/dlm/lowcomms.c

View file
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index d281418..70abd4d 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -1826,8 +1826,8 @@ static int dlm_tcp_listen_validate(void)
{
/* We don't support multi-homed hosts */
if (dlm_local_count > 1) {
- log_print("TCP protocol can't handle multi-homed hosts, try SCTP");
- return -EINVAL;
+ log_print("Detect multi-homed hosts but use only the first IP address.");
+ log_print("Try SCTP, if you want to enable multi-link.");
}
return 0;