Showing error 743

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: fs/gfs2/log.c
Line in file: 722
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:22:22 UTC


Source:

692                        brelse(bh);
693                        gfs2_log_lock(sdp);
694                        continue;
695                }
696                list_del_init(&bd->bd_le.le_list);
697        }
698        gfs2_log_unlock(sdp);
699}
700
701/**
702 * gfs2_log_flush - flush incore transaction(s)
703 * @sdp: the filesystem
704 * @gl: The glock structure to flush.  If NULL, flush the whole incore log
705 *
706 */
707
708void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl)
709{
710        struct gfs2_ail *ai;
711
712        down_write(&sdp->sd_log_flush_lock);
713
714        /* Log might have been flushed while we waited for the flush lock */
715        if (gl && !test_bit(GLF_LFLUSH, &gl->gl_flags)) {
716                up_write(&sdp->sd_log_flush_lock);
717                return;
718        }
719
720        ai = kzalloc(sizeof(struct gfs2_ail), GFP_NOFS | __GFP_NOFAIL);
721        INIT_LIST_HEAD(&ai->ai_ail1_list);
722        INIT_LIST_HEAD(&ai->ai_ail2_list);
723
724        if (sdp->sd_log_num_buf != sdp->sd_log_commited_buf) {
725                printk(KERN_INFO "GFS2: log buf %u %u\n", sdp->sd_log_num_buf,
726                       sdp->sd_log_commited_buf);
727                gfs2_assert_withdraw(sdp, 0);
728        }
729        if (sdp->sd_log_num_databuf != sdp->sd_log_commited_databuf) {
730                printk(KERN_INFO "GFS2: log databuf %u %u\n",
731                       sdp->sd_log_num_databuf, sdp->sd_log_commited_databuf);
732                gfs2_assert_withdraw(sdp, 0);
Show full sources