aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/inode.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index cc753928e411..4e6558df54b8 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1409,14 +1409,8 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
1409 if ((fattr->valid & NFS_ATTR_FATTR) == 0) 1409 if ((fattr->valid & NFS_ATTR_FATTR) == 0)
1410 return 0; 1410 return 0;
1411 1411
1412 if (nfsi->fileid != fattr->fileid) { 1412 if (nfsi->fileid != fattr->fileid)
1413 printk(KERN_ERR "%s: inode number mismatch\n" 1413 goto out_fileid;
1414 "expected (%s/0x%Lx), got (%s/0x%Lx)\n",
1415 __FUNCTION__,
1416 inode->i_sb->s_id, (long long)nfsi->fileid,
1417 inode->i_sb->s_id, (long long)fattr->fileid);
1418 goto out_err;
1419 }
1420 1414
1421 /* 1415 /*
1422 * Make sure the inode's type hasn't changed. 1416 * Make sure the inode's type hasn't changed.
@@ -1538,6 +1532,13 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
1538 */ 1532 */
1539 nfs_invalidate_inode(inode); 1533 nfs_invalidate_inode(inode);
1540 return -ESTALE; 1534 return -ESTALE;
1535
1536 out_fileid:
1537 printk(KERN_ERR "NFS: server %s error: fileid changed\n"
1538 "fsid %s: expected fileid 0x%Lx, got 0x%Lx\n",
1539 NFS_SERVER(inode)->hostname, inode->i_sb->s_id,
1540 (long long)nfsi->fileid, (long long)fattr->fileid);
1541 goto out_err;
1541} 1542}
1542 1543
1543/* 1544/*