Page MenuHomeFreeBSD

fusefs: fix error handling when reading a directory's sticky bit
ClosedPublic

Authored by asomers on Sun, Jun 14, 5:41 PM.
Tags
None
Referenced Files
F160294637: D57588.id179744.diff
Tue, Jun 23, 12:32 AM
F160293818: D57588.id179744.diff
Tue, Jun 23, 12:23 AM
F160271434: D57588.id179745.diff
Mon, Jun 22, 7:04 PM
F160271221: D57588.id179745.diff
Mon, Jun 22, 7:00 PM
Unknown Object (File)
Sat, Jun 20, 9:13 PM
Unknown Object (File)
Sat, Jun 20, 9:09 PM
Unknown Object (File)
Fri, Jun 19, 9:30 PM
Unknown Object (File)
Thu, Jun 18, 5:45 PM
Subscribers

Details

Summary

When trying to delete or rename a file, fuse_vnop_lookup must check
whether its parent directory's sticky bit is set. Realistically, the
parent directory's attributes will almost always be cached. But it's
possible that they won't be, and in that case we must send a new
FUSE_GETATTR request to the server. If that request fails for some
reason, then we must fail the lookup. Prior to this change fusefs would
ignore failure of that request.

Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,

and Ke Xu of Tsinghua University

MFC after: 2 weeks

Test Plan

Test case added

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 73873
Build 70756: arc lint + arc unit