p9_client_attach(): set fid->uid correctly
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 3 Apr 2015 01:47:49 +0000 (21:47 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Apr 2015 02:28:28 +0000 (22:28 -0400)
commit21c9f5ccb103868c730aec6f8548e144ec397fed
treed82387bd64ae1e98c40ad2f244d1584ec5c4f47f
parentce85dd58ad5a6c209bb6e7413997b87b667db7ad
p9_client_attach(): set fid->uid correctly

it's almost always equal to current_fsuid(), but there's an exception -
if the first writeback fid is opened by non-root *and* that happens before
root has done any lookups in /, we end up doing attach for root.  The
current code leaves the resulting FID owned by root from the server POV
and by non-root from the client one.  Unfortunately, it means that e.g.
massive dcache eviction will leave that user buggered - they'll end
up redoing walks from / *and* picking that FID every time.  As soon as
they try to create something, the things will get nasty.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
net/9p/client.c