diff options
-rw-r--r-- | fs/afs/dir.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 104df2964225..f73b2f62afaa 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -274,6 +274,7 @@ static struct afs_read *afs_read_dir(struct afs_vnode *dvnode, struct key *key) loff_t i_size; int nr_pages, i; int ret; + loff_t remote_size = 0; _enter(""); @@ -288,6 +289,8 @@ static struct afs_read *afs_read_dir(struct afs_vnode *dvnode, struct key *key) expand: i_size = i_size_read(&dvnode->netfs.inode); + if (i_size < remote_size) + i_size = remote_size; if (i_size < 2048) { ret = afs_bad(dvnode, afs_file_error_dir_small); goto error; @@ -363,6 +366,7 @@ expand: * buffer. */ up_write(&dvnode->validate_lock); + remote_size = req->file_size; goto expand; } |