SVNews r326657

NOTE: This service is experimental and subject to change! Use at your own risk!

2017-12-07 09:05:34 - r326657 by kib (Konstantin Belousov)

Complete list of files affected by revision r326657:

(Note: At the moment, these links point to ViewVC on svn.freebsd.org. They are probably slow. Do not overuse.)

  History   Contents   Diff   MODIFY   /head/sys/ufs/ufs/ufs_dirhash.c  

Commit message:

Fix livelock in ufsdirhash_create().

When more than one thread enters ufsdirhash_create() for the same
directory and the inode dirhash is instantiated, but the dirhash' hash
is not, all of them lock the dirhash shared and then try to upgrade.
Since there are several threads owning the lock shared, upgrade fails
and the same attempt is repeated, ad infinitum.

To break the lockstep, lock the dirhash in exclusive mode after the
failed try-upgrade.

Reported and tested by: pho
Sponsored by: Mellanox Technologies
MFC after: 1 week

 


Powered by Python FreeBSD support by secnetix GmbH & Co. KG

Page generated in 8 ms, 1 file printed. Current time is 2017-12-18 22:24:40. All times are in UTC/GMT.