From: Andrew Morton Might fix http://bugme.osdl.org/show_bug.cgi?id=4497 Signed-off-by: Andrew Morton --- fs/smbfs/dir.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN fs/smbfs/dir.c~smbfs-readdir-vs-signal-fix fs/smbfs/dir.c --- devel/fs/smbfs/dir.c~smbfs-readdir-vs-signal-fix 2005-10-25 15:55:42.000000000 -0700 +++ devel-akpm/fs/smbfs/dir.c 2005-10-25 15:57:46.000000000 -0700 @@ -209,6 +209,8 @@ init_cache: ctl.valid = 1; read_really: result = server->ops->readdir(filp, dirent, filldir, &ctl); + if (result == -ERESTARTSYS && page) + ClearPageUptodate(page); if (ctl.idx == -1) goto invalid_cache; /* retry */ ctl.head.end = ctl.fpos - 1; @@ -217,7 +219,8 @@ finished: if (page) { cache->head = ctl.head; kunmap(page); - SetPageUptodate(page); + if (result != -ERESTARTSYS) + SetPageUptodate(page); unlock_page(page); page_cache_release(page); } _