On Thu, Feb 25, 2016 at 02:42:51PM -0500, Chris Mason wrote: > Al, any ideas why get_anon_bdev is doing an atomic allocation here? > > if (ida_pre_get(&unnamed_dev_ida, GFP_ATOMIC) == 0) Because set() callback of sget() runs under sb_lock - it must be atomic wrt scanning the list of superblock in search of match. And get_anon_bdev() is called from such callbacks... In principle, we could change locking rules for case when test callback is NULL, except that it's also called from ns_set_super(), which *does* come along with non-NULL test() (see mount_ns()), so that really doesn't help... -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
