Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
f2614a6
wifi: mwifiex: Fix OOB and integer underflow when rx packets
PlaidCat Nov 6, 2025
16cdcae
wifi: mwifiex: Fix missed return in oob checks failed path
PlaidCat Nov 6, 2025
f39bc92
wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
PlaidCat Nov 6, 2025
a738dec
wifi: mac80211: check S1G action frame size
PlaidCat Nov 6, 2025
81195c2
ext4: refactor ext4_da_map_blocks()
PlaidCat Nov 6, 2025
22ae47d
ext4: convert to exclusive lock while inserting delalloc extents
PlaidCat Nov 6, 2025
0798aaa
ext4: factor out a common helper to query extent map
PlaidCat Nov 6, 2025
30d4b0f
ext4: check the extent status again before inserting delalloc block
PlaidCat Nov 6, 2025
39b7e35
ext4: ext4: unify EXT4_EX_NOCACHE|NOFAIL flags in ext4_ext_remove_spa…
PlaidCat Nov 6, 2025
d1d5e37
ext4: prevent stale extent cache entries caused by concurrent I/O wri…
PlaidCat Nov 6, 2025
af55a78
wifi: cfg80211: fix use-after-free in cmp_bss()
PlaidCat Nov 6, 2025
5406573
gfs2: Move gfs2_log_pointers_init
PlaidCat Nov 6, 2025
4166016
gfs2: Fix glock recursion in freeze_go_xmote_bh
PlaidCat Nov 6, 2025
014a64c
gfs2: Simplify gfs2_log_pointers_init
PlaidCat Nov 6, 2025
6f1a6bc
gfs2: Simplify clean_journal
PlaidCat Nov 6, 2025
a8a51b7
gfs2: Improve gfs2_make_fs_rw error handling
PlaidCat Nov 6, 2025
422368d
gfs2: Get rid of duplicate log head lookup
PlaidCat Nov 6, 2025
b0c5f69
gfs2: Clean up revokes on normal withdraws
PlaidCat Nov 6, 2025
2bae0ad
gfs2: No more gfs2_find_jhead caching
PlaidCat Nov 6, 2025
91ed4fb
net: enable memcg accounting for veth queues
PlaidCat Nov 6, 2025
fe34449
veth: try harder when allocating queue memory
PlaidCat Nov 6, 2025
5e3c681
cifs: fix allocation size on newly created files
PlaidCat Nov 6, 2025
2c5d9a5
cifs: Adjust key sizes and key generation routines for AES256 encryption
PlaidCat Nov 6, 2025
51c49fc
cifs: track individual channel status using chans_need_reconnect
PlaidCat Nov 6, 2025
4b13da8
cifs: use the chans_need_reconnect bitmap for reconnect status
PlaidCat Nov 6, 2025
4bd76ee
cifs: adjust DebugData to use chans_need_reconnect for conn status
PlaidCat Nov 6, 2025
007bf8f
cifs: add WARN_ON for when chan_count goes below minimum
PlaidCat Nov 6, 2025
084b53f
cifs: reconnect only the connection and not smb session where possible
PlaidCat Nov 6, 2025
b34811b
cifs: take cifs_tcp_ses_lock for status checks
PlaidCat Nov 6, 2025
71987dd
cifs: fix hang on cifs_get_next_mid()
PlaidCat Nov 6, 2025
07e052e
cifs: maintain a state machine for tcp/smb/tcon sessions
PlaidCat Nov 6, 2025
12abbdd
cifs: avoid race during socket reconnect between send and recv
PlaidCat Nov 6, 2025
c143cf3
cifs: check reconnects for channels of active tcons too
PlaidCat Nov 6, 2025
0bd77b2
cifs: fix the connection state transitions with multichannel
PlaidCat Nov 6, 2025
f100afe
cifs: protect all accesses to chan_* with chan_lock
PlaidCat Nov 6, 2025
7d938c3
cifs: remove unused variable ses_selected
PlaidCat Nov 6, 2025
f412c95
cifs: fix the cifs_reconnect path for DFS
PlaidCat Nov 6, 2025
718630f
cifs: remove repeated state change in dfs tree connect
PlaidCat Nov 6, 2025
f76cf10
cifs: make status checks in version independent callers
PlaidCat Nov 6, 2025
3335274
cifs: update tcpStatus during negotiate and sess setup
PlaidCat Nov 6, 2025
556d5c8
cifs: cifs_ses_mark_for_reconnect should also update reconnect bits
PlaidCat Nov 6, 2025
542688f
cifs: unlock chan_lock before calling cifs_put_tcp_session
PlaidCat Nov 6, 2025
078cf66
cifs: call cifs_reconnect when a connection is marked
PlaidCat Nov 6, 2025
062cc77
cifs: call helper functions for marking channels for reconnect
PlaidCat Nov 6, 2025
fa4f730
cifs: mark sessions for reconnection in helper function
PlaidCat Nov 6, 2025
abd9d8c
smb3: fix incorrect session setup check for multiuser mounts
PlaidCat Nov 6, 2025
067f3c3
cifs: use a different reconnect helper for non-cifsd threads
PlaidCat Nov 6, 2025
2c9f76c
smb3: cleanup and clarify status of tree connections
PlaidCat Nov 6, 2025
3f07f91
cifs: fix potential race with cifsd thread
PlaidCat Nov 6, 2025
52f1c1b
cifs: force new session setup and tcon for dfs
PlaidCat Nov 6, 2025
6540397
cifs: Use kzalloc instead of kmalloc/memset
PlaidCat Nov 6, 2025
0437e41
cifs: use correct lock type in cifs_reconnect()
PlaidCat Nov 6, 2025
bc0f100
cifs: do not use tcpStatus after negotiate completes
PlaidCat Nov 6, 2025
87168a8
cifs: fix incorrect use of list iterator after the loop
PlaidCat Nov 6, 2025
7fa07b2
cifs: use new enum for ses_status
PlaidCat Nov 6, 2025
c1ad34d
cifs: avoid parallel session setups on same channel
PlaidCat Nov 6, 2025
01682af
cifs: remove repeated debug message on cifs_put_smb_ses()
PlaidCat Nov 6, 2025
0563d51
cifs: return errors during session setup during reconnects
PlaidCat Nov 6, 2025
1942444
cifs: fix potential deadlock in direct reclaim
PlaidCat Nov 6, 2025
2eea6e8
cifs: when a channel is not found for server, log its connection id
PlaidCat Nov 6, 2025
3a7da54
cifs: change iface_list from array to sorted linked list
PlaidCat Nov 6, 2025
ae839c3
cifs: during reconnect, update interface if necessary
PlaidCat Nov 6, 2025
3dd7d9d
cifs: periodically query network interfaces from server
PlaidCat Nov 6, 2025
85064fa
cifs: avoid deadlocks while updating iface
PlaidCat Nov 6, 2025
89c5be9
cifs: update cifs_ses::ip_addr after failover
PlaidCat Nov 6, 2025
37e8dfc
cifs: fix race condition with delayed threads
PlaidCat Nov 6, 2025
9992132
cifs: remove unnecessary locking of chan_lock while freeing session
PlaidCat Nov 6, 2025
578f897
smb3: check xattr value length earlier
PlaidCat Nov 6, 2025
69341be
cifs: remove redundant initialization to variable mnt_sign_enabled
PlaidCat Nov 6, 2025
e5f483b
cifs: remove unnecessary type castings
PlaidCat Nov 6, 2025
ec60bfa
cifs: remove unnecessary (void*) conversions.
PlaidCat Nov 6, 2025
eddb7a6
cifs: remove some camelCase and also some static build warnings
PlaidCat Nov 6, 2025
21f5915
cifs: remove minor build warning
PlaidCat Nov 6, 2025
641b911
cifs: remove remaining build warnings
PlaidCat Nov 6, 2025
5a18869
cifs: avoid use of global locks for high contention data
PlaidCat Nov 6, 2025
085ff68
cifs: fix wrong unlock before return from cifs_tree_connect()
PlaidCat Nov 6, 2025
7ec1954
cifs: remove "cifs_" prefix from init/destroy mids functions
PlaidCat Nov 6, 2025
6bd5959
cifs: alloc_mid function should be marked as static
PlaidCat Nov 6, 2025
fcdd12c
smb3: limit noisy error
PlaidCat Nov 6, 2025
31c9d82
cifs: remove unused server parameter from calc_smb_size()
PlaidCat Nov 6, 2025
d98f37f
cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl()
PlaidCat Nov 6, 2025
01af8b0
cifs: fix small mempool leak in SMB2_negotiate()
PlaidCat Nov 6, 2025
d219e22
cifs: add missing spinlock around tcon refcount
PlaidCat Nov 6, 2025
866dfa3
cifs: return correct error in ->calc_signature()
PlaidCat Nov 6, 2025
6e82b4f
smb3: do not log confusing message when server returns no network int…
PlaidCat Nov 6, 2025
9ab2344
smb3: clarify multichannel warning
PlaidCat Nov 6, 2025
16abcd8
cifs: Fix xid leak in cifs_ses_add_channel()
PlaidCat Nov 6, 2025
1b53023
smb3: interface count displayed incorrectly
PlaidCat Nov 6, 2025
dc8e8be
cifs: avoid unnecessary iteration of tcp sessions
PlaidCat Nov 6, 2025
d31926b
cifs: Use after free in debug code
PlaidCat Nov 6, 2025
ef9e18c
cifs: set correct tcon status after initial tree connect
PlaidCat Nov 6, 2025
1fd7616
cifs: set correct ipc status after initial tree connect
PlaidCat Nov 6, 2025
1f48988
cifs: set correct status of tcon ipc when reconnecting
PlaidCat Nov 6, 2025
e467b63
cifs: fix race in assemble_neg_contexts()
PlaidCat Nov 6, 2025
d5d7a48
cifs: protect access of TCP_Server_Info::{dstaddr,hostname}
PlaidCat Nov 6, 2025
eb3eb89
cifs: fix interface count calculation during refresh
PlaidCat Nov 6, 2025
9334f3b
cifs: do not query ifaces on smb1 mounts
PlaidCat Nov 6, 2025
99835d1
cifs: prevent data race in smb2_reconnect()
PlaidCat Nov 6, 2025
ff0d60a
cifs: get rid of dns resolve worker
PlaidCat Nov 6, 2025
cd6c8ca
cifs: use the least loaded channel for sending requests
PlaidCat Nov 6, 2025
e84aaec
cifs: use tcon allocation functions even for dummy tcon
PlaidCat Nov 6, 2025
2f6ec52
cifs: update ip_addr for ses only for primary chan setup
PlaidCat Nov 6, 2025
51b964e
cifs: match even the scope id for ipv6 addresses
PlaidCat Nov 6, 2025
937a1b1
cifs: reuse cifs_match_ipaddr for comparison of dstaddr too
PlaidCat Nov 6, 2025
58b40a9
cifs: prevent data race in cifs_reconnect_tcon()
PlaidCat Nov 6, 2025
a6c6592
cifs: Move the in_send statistic to __smb_send_rqst()
PlaidCat Nov 6, 2025
d48334b
cifs: generate signkey for the channel that's reconnecting
PlaidCat Nov 6, 2025
36b6f0b
cifs: do not poll server interfaces too regularly
PlaidCat Nov 6, 2025
57f24a9
cifs: empty interface list when server doesn't support query interfaces
PlaidCat Nov 6, 2025
26aa824
cifs: avoid race conditions with parallel reconnects
PlaidCat Nov 6, 2025
e67eb05
cifs: fix missing unload_nls() in smb2_reconnect()
PlaidCat Nov 6, 2025
971f0c9
cifs: avoid races in parallel reconnects in smb1
PlaidCat Nov 6, 2025
765aa45
cifs: get rid of dead check in smb2_reconnect()
PlaidCat Nov 6, 2025
83e2322
cifs: double lock in cifs_reconnect_tcon()
PlaidCat Nov 6, 2025
c66267a
cifs: refcount only the selected iface during interface update
PlaidCat Nov 6, 2025
f055b0c
cifs: missing lock when updating session status
PlaidCat Nov 6, 2025
a7b14ee
cifs: protect session status check in smb2_reconnect()
PlaidCat Nov 6, 2025
ebcdb59
cifs: print smb3_fs_context::source when mounting
PlaidCat Nov 6, 2025
c72f7bb
cifs: fix potential use-after-free bugs in TCP_Server_Info::hostname
PlaidCat Nov 6, 2025
ea379d1
cifs: do all necessary checks for credits within or before locking
PlaidCat Nov 6, 2025
1fd8874
cifs: fix session state check in reconnect to avoid use-after-free issue
PlaidCat Nov 6, 2025
31cf57c
cifs: fix session state check in smb2_find_smb_ses
PlaidCat Nov 6, 2025
f50321e
cifs: log session id when a matching ses is not found
PlaidCat Nov 6, 2025
861362e
cifs: fix session state transition to avoid use-after-free issue
PlaidCat Nov 6, 2025
1ac8167
cifs: print last update time for interface list
PlaidCat Nov 6, 2025
925ff7a
smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
PlaidCat Nov 6, 2025
8b0a57c
cifs: reconnect helper should set reconnect for the right channel
PlaidCat Nov 6, 2025
bded332
cifs: do not reset chan_max if multichannel is not supported at mount
PlaidCat Nov 6, 2025
95335ab
cifs: force interface update before a fresh session setup
PlaidCat Nov 6, 2025
8bc9f08
cifs: handle cases where a channel is closed
PlaidCat Nov 6, 2025
a7504d4
cifs: distribute channels across interfaces based on speed
PlaidCat Nov 6, 2025
d8532d7
cifs: account for primary channel in the interface list
PlaidCat Nov 6, 2025
a71c716
cifs: cifs_chan_is_iface_active should be called with chan_lock held
PlaidCat Nov 6, 2025
84ac0fd
cifs: do not depend on release_iface for maintaining iface_list
PlaidCat Nov 6, 2025
0f3ff12
cifs: update iface_last_update on each query-and-update
PlaidCat Nov 6, 2025
6c057e6
cifs: failure to add channel on iface should bump up weight
PlaidCat Nov 6, 2025
4a31687
smb: client: fix UAF in smb2_reconnect_server()
PlaidCat Nov 6, 2025
bdb65b3
smb: client: fix use-after-free of signing key
PlaidCat Nov 6, 2025
168d21c
smb: client: fix oops due to unset link speed
PlaidCat Nov 6, 2025
e076731
cifs: update dstaddr whenever channel iface is updated
PlaidCat Nov 6, 2025
f810843
smb: client: fix potential deadlock when reconnecting channels
PlaidCat Nov 6, 2025
b6a878b
smb3: missing lock when picking channel
PlaidCat Nov 6, 2025
54169ff
cifs: deal with the channel loading lag while picking channels
PlaidCat Nov 6, 2025
1112564
cifs: reset iface weights when we cannot find a candidate
PlaidCat Nov 6, 2025
aa7b0df
cifs: fix leak of iface for primary channel
PlaidCat Nov 6, 2025
48e11f3
Rebuild rocky8_10 with kernel-4.18.0-553.82.1.el8_10
PlaidCat Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
gfs2: Get rid of duplicate log head lookup
jira LE-4669
Rebuild_History Non-Buildable kernel-4.18.0-553.82.1.el8_10
commit-author Andreas Gruenbacher <agruenba@redhat.com>
commit 93bd5ed

Currently at mount time, the recovery code looks up the current log head
and, if necessary, replays the log and writes a recovery header to
indicate that the log is clean.  It does that for each log that may need
recovery.  We also know that our own log will always be checked as part
of that process.  Then, the mount code looks up the log head of our own
log again.

The double log head lookup can be costly, but more importantly, it is
unnecessary because we can trivially compute the position of the log
head after recovery; all we need to do for that is bump the position and
lh_sequence by one when writing a recovery header.

With that in mind, move the call to gfs2_log_pointers_init() into
gfs2_recover_func() and get rid of the double lookup in
gfs2_make_fs_rw().

	Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
(cherry picked from commit 93bd5ed)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
  • Loading branch information
PlaidCat committed Nov 6, 2025
commit 422368d5382221c76f86482f19ff72c46f3e2ca1
3 changes: 3 additions & 0 deletions fs/gfs2/recovery.c
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,9 @@ void gfs2_recover_func(struct work_struct *work)
ktime_ms_delta(t_rep, t_tlck));
}

if (jd->jd_jid == sdp->sd_lockstruct.ls_jid)
gfs2_log_pointers_init(sdp, &head);

gfs2_recovery_done(sdp, jd->jd_jid, LM_RD_SUCCESS);

if (jlocked) {
Expand Down
15 changes: 3 additions & 12 deletions fs/gfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,27 +137,18 @@ int gfs2_make_fs_rw(struct gfs2_sbd *sdp)
{
struct gfs2_inode *ip = GFS2_I(sdp->sd_jdesc->jd_inode);
struct gfs2_glock *j_gl = ip->i_gl;
struct gfs2_log_header_host head;
int error;

j_gl->gl_ops->go_inval(j_gl, DIO_METADATA);
if (gfs2_withdrawn(sdp))
return -EIO;

error = gfs2_find_jhead(sdp->sd_jdesc, &head, false);
if (error) {
gfs2_consist(sdp);
return error;
}

if (!(head.lh_flags & GFS2_LOG_HEAD_UNMOUNT)) {
gfs2_consist(sdp);
if (sdp->sd_log_sequence == 0) {
fs_err(sdp, "unknown status of our own journal jid %d",
sdp->sd_lockstruct.ls_jid);
return -EIO;
}

/* Initialize some head of the log stuff */
gfs2_log_pointers_init(sdp, &head);

error = gfs2_quota_init(sdp);
if (!error && gfs2_withdrawn(sdp))
error = -EIO;
Expand Down