On Mon, Nov 22, 2010 at 09:41:13PM -0600, Dave Kleikamp wrote: > I see three potential ways to fix this. > > 1. bdi_prune_sb() could set sb->s_bdi to &default_backing_dev_info > rather than NULL > 2. inode_to_bdi() could return &default_backing_dev_info (or > inode->i_mapping->backing_dev_info) if sb->s_bdi is NULL. > 3. the callers of inode_to_bdi() could check for s_bdi being NULL and > exit gracefully. > > It seems that Jens and Christoph have ideas about cleaning up the bdi > stuff, so this may be a short-term fix.
It's a mess. The correct fix is to never unregister a bdi that still has a life filesystem on it. This seems to be solved by plain removing the unlink_gendisk call in unlink_gendisk. Unlink_gendisk just removes the gendisk from visibility, but it still lives on as long as we have references to it. We already have a bdi_destroy call in blk_release_queue that should unregister the BDI once it's reference count finally reaches zero. ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ Jfs-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jfs-discussion
