diff options
-rw-r--r-- | fs/cifs/cifsfs.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 10c90294cd18..93ef09971d2f 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -511,7 +511,15 @@ static loff_t cifs_llseek(struct file *file, loff_t offset, int origin) | |||
511 | { | 511 | { |
512 | /* origin == SEEK_END => we must revalidate the cached file length */ | 512 | /* origin == SEEK_END => we must revalidate the cached file length */ |
513 | if (origin == SEEK_END) { | 513 | if (origin == SEEK_END) { |
514 | int retval = cifs_revalidate(file->f_path.dentry); | 514 | int retval; |
515 | |||
516 | /* some applications poll for the file length in this strange | ||
517 | way so we must seek to end on non-oplocked files by | ||
518 | setting the revalidate time to zero */ | ||
519 | if(file->f_path.dentry->d_inode) | ||
520 | CIFS_I(file->f_path.dentry->d_inode)->time = 0; | ||
521 | |||
522 | retval = cifs_revalidate(file->f_path.dentry); | ||
515 | if (retval < 0) | 523 | if (retval < 0) |
516 | return (loff_t)retval; | 524 | return (loff_t)retval; |
517 | } | 525 | } |