[PATCH] smbfs readdir vs signal fix
[pandora-kernel.git] / fs / smbfs / dir.c
index c6c33e1..0424d06 100644 (file)
@@ -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);
        }