Showing error 1760

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: fs/nfs/inode.c
Line in file: 642
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 20:24:52 UTC


Source:

 612
 613static void nfs_file_clear_open_context(struct file *filp)
 614{
 615        struct inode *inode = filp->f_path.dentry->d_inode;
 616        struct nfs_open_context *ctx = nfs_file_open_context(filp);
 617
 618        if (ctx) {
 619                filp->private_data = NULL;
 620                spin_lock(&inode->i_lock);
 621                list_move_tail(&ctx->list, &NFS_I(inode)->open_files);
 622                spin_unlock(&inode->i_lock);
 623                put_nfs_open_context_sync(ctx);
 624        }
 625}
 626
 627/*
 628 * These allocate and release file read/write context information.
 629 */
 630int nfs_open(struct inode *inode, struct file *filp)
 631{
 632        struct nfs_open_context *ctx;
 633        struct rpc_cred *cred;
 634
 635        cred = rpc_lookup_cred();
 636        if (IS_ERR(cred))
 637                return PTR_ERR(cred);
 638        ctx = alloc_nfs_open_context(filp->f_path.mnt, filp->f_path.dentry, cred);
 639        put_rpccred(cred);
 640        if (ctx == NULL)
 641                return -ENOMEM;
 642        ctx->mode = filp->f_mode;
 643        nfs_file_set_open_context(filp, ctx);
 644        put_nfs_open_context(ctx);
 645        return 0;
 646}
 647
 648int nfs_release(struct inode *inode, struct file *filp)
 649{
 650        nfs_file_clear_open_context(filp);
 651        return 0;
 652}
Show full sources