diff -urNp x-ref/fs/dcache.c x/fs/dcache.c --- x-ref/fs/dcache.c 2003-01-29 06:14:10.000000000 +0100 +++ x/fs/dcache.c 2003-01-30 16:07:01.000000000 +0100 @@ -1048,8 +1048,11 @@ asmlinkage long sys_getcwd(char *buf, un goto out; error = -ERANGE; + + if (cwd == ERR_PTR(-ENAMETOOLONG)) error = -ENAMETOOLONG; + len = PAGE_SIZE + page - cwd; - if (len <= size) { + if (len <= size && error != -ENAMETOOLONG) { error = len; if (copy_to_user(buf, cwd, len)) error = -EFAULT;