----- "Steven Whitehouse" <[email protected]> wrote: | Hi, | | Now in the -nmw GFS2 tree. Thanks, | | Steve. | | On Tue, 2010-06-15 at 12:07 -0400, Bob Peterson wrote: | > Hi, | > | > This patch fixes a problem in an error path when looking | > up dinodes. There are two sister-functions, gfs2_inode_lookup | > and gfs2_process_unlinked_inode. Both functions acquire and | > hold the i_iopen glock for the dinode being looked up. The last | > thing they try to do is hold the i_gl glock for the dinode. | > If that glock fails for some reason, the error path was | > incorrectly calling gfs2_glock_put for the i_iopen glock twice. | > This resulted in the glock being prematurely freed. The | > "minimum hold time" usually kept the glock in memory, but the | > lock interface to dlm (aka lock_dlm) freed its memory for the | > glock. In some circumstances, it would cause dlm's dlm_astd daemon | > to try to call the bast function for the freed lock_dlm memory, | > which resulted in a NULL pointer dereference. | > | > This problem was discovered while testing bugzilla bug #595397. | > | > Regards, | > | > Bob Peterson | > Red Hat GFS
Hi, Actually, it's not yet in the -nmw git tree. I think Steve W. forgot to push it before he left on holiday. At any rate, that's a good thing because my testing has uncovered a possible problem with this patch. I'm planning to rework it and re-post when I get a stable version. Regards, Bob Peterson Red Hat File Systems
