Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag '6.10-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client fix from Steve French:
"Fix for smb3 readahead performance regression"

* tag '6.10-rc6-smb3-client-fix' of git://git.samba.org/sfrench/cifs-2.6:
cifs: Fix read-performance regression by dropping readahead expansion

-30
-30
fs/smb/client/file.c
··· 246 246 } 247 247 248 248 /* 249 - * Expand the size of a readahead to the size of the rsize, if at least as 250 - * large as a page, allowing for the possibility that rsize is not pow-2 251 - * aligned. 252 - */ 253 - static void cifs_expand_readahead(struct netfs_io_request *rreq) 254 - { 255 - unsigned int rsize = rreq->rsize; 256 - loff_t misalignment, i_size = i_size_read(rreq->inode); 257 - 258 - if (rsize < PAGE_SIZE) 259 - return; 260 - 261 - if (rsize < INT_MAX) 262 - rsize = roundup_pow_of_two(rsize); 263 - else 264 - rsize = ((unsigned int)INT_MAX + 1) / 2; 265 - 266 - misalignment = rreq->start & (rsize - 1); 267 - if (misalignment) { 268 - rreq->start -= misalignment; 269 - rreq->len += misalignment; 270 - } 271 - 272 - rreq->len = round_up(rreq->len, rsize); 273 - if (rreq->start < i_size && rreq->len > i_size - rreq->start) 274 - rreq->len = i_size - rreq->start; 275 - } 276 - 277 - /* 278 249 * Completion of a request operation. 279 250 */ 280 251 static void cifs_rreq_done(struct netfs_io_request *rreq) ··· 300 329 .init_request = cifs_init_request, 301 330 .free_request = cifs_free_request, 302 331 .free_subrequest = cifs_free_subrequest, 303 - .expand_readahead = cifs_expand_readahead, 304 332 .clamp_length = cifs_clamp_length, 305 333 .issue_read = cifs_req_issue_read, 306 334 .done = cifs_rreq_done,