Showing error 1660

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: fs/xfs/linux-2.6/xfs_super.c
Line in file: 962
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

 932                XFS_STATS_INC(vn_rele);
 933                XFS_STATS_INC(vn_remove);
 934                XFS_STATS_INC(vn_reclaim);
 935                XFS_STATS_DEC(vn_active);
 936
 937                xfs_inactive(ip);
 938                xfs_iflags_clear(ip, XFS_IMODIFIED);
 939                if (xfs_reclaim(ip))
 940                        panic("%s: cannot reclaim 0x%p\n", __func__, inode);
 941        }
 942
 943        ASSERT(XFS_I(inode) == NULL);
 944}
 945
 946/*
 947 * Enqueue a work item to be picked up by the vfs xfssyncd thread.
 948 * Doing this has two advantages:
 949 * - It saves on stack space, which is tight in certain situations
 950 * - It can be used (with care) as a mechanism to avoid deadlocks.
 951 * Flushing while allocating in a full filesystem requires both.
 952 */
 953STATIC void
 954xfs_syncd_queue_work(
 955        struct xfs_mount *mp,
 956        void                *data,
 957        void                (*syncer)(struct xfs_mount *, void *))
 958{
 959        struct bhv_vfs_sync_work *work;
 960
 961        work = kmem_alloc(sizeof(struct bhv_vfs_sync_work), KM_SLEEP);
 962        INIT_LIST_HEAD(&work->w_list);
 963        work->w_syncer = syncer;
 964        work->w_data = data;
 965        work->w_mount = mp;
 966        spin_lock(&mp->m_sync_lock);
 967        list_add_tail(&work->w_list, &mp->m_sync_list);
 968        spin_unlock(&mp->m_sync_lock);
 969        wake_up_process(mp->m_sync_task);
 970}
 971
 972/*
Show full sources