dir: add missing return in DRead

A missing return in the kernel version of DRead causes the code to
think that no entry exists for a dir and proceed to allocate a new
one, if the entry is the third one in the hash chain.

If the existing entry is dirty, its contents are never written back,
and the pending changes to the directory are not seen by the client.

Change-Id: I8b0f86b04d6ac8f75720933308a0983810974ff4
Reviewed-on: http://gerrit.openafs.org/5666
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
This commit is contained in:
Marc Dionne 2011-10-23 22:45:21 -04:00 committed by Derrick Brashear
parent 2aaa540276
commit 7829e71523

View File

@ -206,6 +206,7 @@ DRead(struct dcache *adc, int page, struct DirBuffer *entry)
ReleaseWriteLock(&tb->lock); ReleaseWriteLock(&tb->lock);
entry->buffer = tb; entry->buffer = tb;
entry->data = tb->data; entry->data = tb->data;
return 0;
} }
} else } else
break; break;