diff options
Diffstat (limited to 'fs/nfs/inode.c')
| -rw-r--r-- | fs/nfs/inode.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 17654bffc3c6..a0cda53461b3 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
| @@ -241,7 +241,6 @@ static struct inode * | |||
| 241 | nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) | 241 | nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) |
| 242 | { | 242 | { |
| 243 | struct nfs_server *server = NFS_SB(sb); | 243 | struct nfs_server *server = NFS_SB(sb); |
| 244 | struct inode *rooti; | ||
| 245 | int error; | 244 | int error; |
| 246 | 245 | ||
| 247 | error = server->rpc_ops->getroot(server, rootfh, fsinfo); | 246 | error = server->rpc_ops->getroot(server, rootfh, fsinfo); |
| @@ -250,10 +249,7 @@ nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *f | |||
| 250 | return ERR_PTR(error); | 249 | return ERR_PTR(error); |
| 251 | } | 250 | } |
| 252 | 251 | ||
| 253 | rooti = nfs_fhget(sb, rootfh, fsinfo->fattr); | 252 | return nfs_fhget(sb, rootfh, fsinfo->fattr); |
| 254 | if (!rooti) | ||
| 255 | return ERR_PTR(-ENOMEM); | ||
| 256 | return rooti; | ||
| 257 | } | 253 | } |
| 258 | 254 | ||
| 259 | /* | 255 | /* |
| @@ -853,7 +849,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr) | |||
| 853 | .fh = fh, | 849 | .fh = fh, |
| 854 | .fattr = fattr | 850 | .fattr = fattr |
| 855 | }; | 851 | }; |
| 856 | struct inode *inode = NULL; | 852 | struct inode *inode = ERR_PTR(-ENOENT); |
| 857 | unsigned long hash; | 853 | unsigned long hash; |
| 858 | 854 | ||
| 859 | if ((fattr->valid & NFS_ATTR_FATTR) == 0) | 855 | if ((fattr->valid & NFS_ATTR_FATTR) == 0) |
| @@ -866,8 +862,11 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr) | |||
| 866 | 862 | ||
| 867 | hash = nfs_fattr_to_ino_t(fattr); | 863 | hash = nfs_fattr_to_ino_t(fattr); |
| 868 | 864 | ||
| 869 | if (!(inode = iget5_locked(sb, hash, nfs_find_actor, nfs_init_locked, &desc))) | 865 | inode = iget5_locked(sb, hash, nfs_find_actor, nfs_init_locked, &desc); |
| 866 | if (inode == NULL) { | ||
| 867 | inode = ERR_PTR(-ENOMEM); | ||
| 870 | goto out_no_inode; | 868 | goto out_no_inode; |
| 869 | } | ||
| 871 | 870 | ||
| 872 | if (inode->i_state & I_NEW) { | 871 | if (inode->i_state & I_NEW) { |
| 873 | struct nfs_inode *nfsi = NFS_I(inode); | 872 | struct nfs_inode *nfsi = NFS_I(inode); |
| @@ -936,7 +935,7 @@ out: | |||
| 936 | return inode; | 935 | return inode; |
| 937 | 936 | ||
| 938 | out_no_inode: | 937 | out_no_inode: |
| 939 | printk("nfs_fhget: iget failed\n"); | 938 | dprintk("nfs_fhget: iget failed with error %ld\n", PTR_ERR(inode)); |
| 940 | goto out; | 939 | goto out; |
| 941 | } | 940 | } |
| 942 | 941 | ||
