Re: possible null pointer in xlog_iodone

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 14, 2013 at 09:15:04PM +0400, Vlad Bespalov wrote:
> i`m running an xfs filesystem over device going offline/online and
> sometimes offline may be done in parallel with unmounting
> 
> at some point i got several crashes with null pointer panic in
> xlog_iodone: xlog_t structure taken from input buffer is null
> 
> i wonder if the following call path combined with disk online/offline
> handling could have led to this crash:
> 
> --------------
> xfs_unmountfs()
>     xfs_log_unmount_write(mp)
>         xlog_state_release_iclog(log)
>             xlog_sync(log, iclog = log->l_iclog)
>             (bp=iclog->ic_bp)
>                 xlog_bdstrat(bp)
>                 (iclog->ic_state != XLOG_STATE_ERROR ? )
>                     xfs_buf_iorequest(bp)
>                         xfs_buf_ioend (called with scheduling (*) )
>                         (queues  : bp->b_iodone_work,
>                          callback: xlog_iodone)

Which is followed by:

                if (!(iclog->ic_state == XLOG_STATE_ACTIVE ||
                      iclog->ic_state == XLOG_STATE_DIRTY)) {
                        if (!XLOG_FORCED_SHUTDOWN(log)) {
                                xlog_wait(&iclog->ic_force_wait,
                                                        &log->l_icloglock)

Which is supposed to wait for the log IO to complete and hence
xlog_iodone() is supposed to have been run by the time this code
completes.

What kernel are you tesing on? Do you have a script that reproduces
it?

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux