Linus Torvalds 200e340f21 Main part here is making parallel lookups safe for RT - making
sure preemption is disabled in start_dir_add()/ end_dir_add() sections (on
 non-RT it's automatic, on RT it needs to to be done explicitly) and moving
 wakeups from __d_lookup_done() inside of such to the end of those sections.
 	Wakeups can be safely delayed for as long as ->d_lock on in-lookup
 dentry is held; proving that has caught a bug in d_add_ci() that allows
 memory corruption when sufficiently bogus ntfs (or case-insensitive xfs)
 image is mounted.  Easily fixed, fortunately.
 
 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCYurAlAAKCRBZ7Krx/gZQ
 6x0mAP9JI80PC/lkYLda+AJ7NmweorBDwrOxzB34biXtyhYDDQEAvdrV07LUkETM
 FDN0+jgSpUikcs/kz5NxVBPRRN+RRAY=
 =qpTA
 -----END PGP SIGNATURE-----

Merge tag 'pull-work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull vfs dcache updates from Al Viro:
 "The main part here is making parallel lookups safe for RT - making
  sure preemption is disabled in start_dir_add()/ end_dir_add() sections
  (on non-RT it's automatic, on RT it needs to to be done explicitly)
  and moving wakeups from __d_lookup_done() inside of such to the end of
  those sections.

  Wakeups can be safely delayed for as long as ->d_lock on in-lookup
  dentry is held; proving that has caught a bug in d_add_ci() that
  allows memory corruption when sufficiently bogus ntfs (or
  case-insensitive xfs) image is mounted. Easily fixed, fortunately"

* tag 'pull-work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  fs/dcache: Move wakeup out of i_seq_dir write held region.
  fs/dcache: Move the wakeup from __d_lookup_done() to the caller.
  fs/dcache: Disable preemption on i_dir_seq write side on PREEMPT_RT
  d_add_ci(): make sure we don't miss d_lookup_done()
2022-08-03 11:43:12 -07:00
..
2022-06-17 06:03:30 +09:00
2022-05-09 16:21:44 -04:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-05-27 15:49:30 -07:00
2022-08-03 10:35:43 -07:00
2022-06-29 08:51:06 -04:00
2022-08-03 10:35:43 -07:00
2022-05-09 16:21:45 -04:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-07-11 15:49:56 -04:00
2022-08-03 10:35:43 -07:00
2022-07-14 12:29:43 -07:00
2022-08-03 10:35:43 -07:00
2022-07-26 13:38:47 +02:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-06-23 08:27:52 -07:00
2022-08-03 10:35:43 -07:00
2022-05-09 16:21:46 -04:00
2022-05-23 20:24:12 -05:00
2022-08-03 10:35:43 -07:00
2022-07-15 23:42:30 -07:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-08-02 12:34:04 -04:00
2022-06-27 16:08:31 +02:00
2022-08-03 10:35:43 -07:00
2022-07-16 09:19:15 -04:00
2022-05-27 15:49:30 -07:00
2022-08-02 14:36:19 -07:00
2022-05-09 18:20:49 -07:00
2022-07-16 09:19:47 -04:00
2022-08-03 10:35:43 -07:00
2022-04-01 19:35:56 -07:00
2022-07-24 18:39:10 -06:00
2022-08-03 10:35:43 -07:00
2022-08-03 10:35:43 -07:00
2022-05-22 21:03:01 +01:00
2022-04-17 19:49:59 -06:00