Re: [PATCH] splice : Must fully check for fifos

From: Jens Axboe
Date: Thu Nov 02 2006 - 14:06:55 EST


On Thu, Nov 02 2006, Eric Dumazet wrote:
> With the patch this time :( Sorry guys
>
> Hi Andrew
>
> I think this patch is necessary. It's quite easy to crash a 2.6.19-rc4 box :(
>
> AFAIK the problem come from inode-diet (by Theodore Ts'o, (2006/Sep/27))
>
> Thank you
>
> [PATCH] splice : Must fully check for FIFO
>
> It appears that i_pipe, i_cdev and i_bdev share the same memory location
> (anonymous union in struct inode) since commits
> 577c4eb09d1034d0739e3135fd2cff50588024be
> eaf796e7ef6014f208c409b2b14fddcfaafe7e3a
>
> Because of that, testing i_pipe being NULL is not anymore sufficient
> to tell if an inode is a FIFO or not.
>
> Therefore, we must use the S_ISFIFO(inode->i_mode) test before
> assuming i_pipe pointer is pointing to a struct pipe_inode_info.

Indeed, the inode slimming introduced this bug. I'll queue up a test run
of things and send it upstream, thanks for catching this.

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/