NFS: Fix a regression in nfs_file_llseek()

After commit 06222e491e (fs: handle
SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek)
the behaviour of llseek() was changed so that it always revalidates
the file size. The bug appears to be due to a logic error in the
afore-mentioned commit, which always evaluates to 'true'.

Reported-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org [>=3.1]
This commit is contained in:
Trond Myklebust 2011-12-15 18:38:10 -05:00
parent 652f89f64f
commit 6c52961743
1 changed files with 1 additions and 1 deletions

View File

@ -147,7 +147,7 @@ static loff_t nfs_file_llseek(struct file *filp, loff_t offset, int origin)
* origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
* the cached file length * the cached file length
*/ */
if (origin != SEEK_SET || origin != SEEK_CUR) { if (origin != SEEK_SET && origin != SEEK_CUR) {
struct inode *inode = filp->f_mapping->host; struct inode *inode = filp->f_mapping->host;
int retval = nfs_revalidate_file_size(inode, filp); int retval = nfs_revalidate_file_size(inode, filp);