diff options
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/inode.c | 17 |
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 | /* |