Fix double unlock if the source file disappears; we would
unlock it here, only to unlock it again below, just before "bad".
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/fs/msdosfs/msdosfs_vnops.c | ||
---|---|---|
1144 | So why this vrele() uses a_vfp pointer instead of fvp ? Is it possible that they are different (doubt it). If so wouldn't it be more natural to stop these intermediate vrele/unlocks, replacing them by final vput(fvp) ? |
sys/fs/msdosfs/msdosfs_vnops.c | ||
---|---|---|
1144 | It is possible they are different - this code happens after a call to relookup(), which can change fvp. In fact, it has to be different, given the conditional ("xp != ip"). |