From 7829e7152361c38a22a7ba4c11e4f614e4392d60 Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Sun, 23 Oct 2011 22:45:21 -0400 Subject: [PATCH] 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 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/afs/afs_buffer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/afs/afs_buffer.c b/src/afs/afs_buffer.c index e9585a725f..52243d6b04 100644 --- a/src/afs/afs_buffer.c +++ b/src/afs/afs_buffer.c @@ -206,6 +206,7 @@ DRead(struct dcache *adc, int page, struct DirBuffer *entry) ReleaseWriteLock(&tb->lock); entry->buffer = tb; entry->data = tb->data; + return 0; } } else break;