int gfp_mask; 
gfp_t gfp_mask; 
static int rd_open(struct inode *inode, struct file *filp){	unsigned unit = iminor(inode);	if (rd_bdev[unit] == NULL) {		struct block_device *bdev = inode->i_bdev;		struct address_space *mapping;		unsigned bsize;		int gfp_mask;		inode = igrab(bdev->bd_inode);		rd_bdev[unit] = bdev;		bdev->bd_openers++;		bsize = bdev_hardsect_size(bdev);		bdev->bd_block_size = bsize;		inode->i_blkbits = blksize_bits(bsize);		inode->i_size = get_capacity(bdev->bd_disk)<<9;		mapping = inode->i_mapping;		mapping->a_ops = &ramdisk_aops;		mapping->backing_dev_info = &rd_backing_dev_info;		bdev->bd_inode_backing_dev_info = &rd_file_backing_dev_info;		/*		 * Deep badness.  rd_blkdev_pagecache_IO() needs to allocate		 * pagecache pages within a request_fn.  We cannot recur back		 * into the filesytem which is mounted atop the ramdisk, because		 * that would deadlock on fs locks.  And we really don't want		 * to reenter rd_blkdev_pagecache_IO when we're already within		 * that function.		 *		 * So we turn off __GFP_FS and __GFP_IO.		 *		 * And to give this thing a hope of working, turn on __GFP_HIGH.		 * Hopefully, there's enough regular memory allocation going on		 * for the page allocator emergency pools to keep the ramdisk		 * driver happy.		 */		gfp_mask = mapping_gfp_mask(mapping);		gfp_mask &= ~(__GFP_FS|__GFP_IO);		gfp_mask |= __GFP_HIGH;		mapping_set_gfp_mask(mapping, gfp_mask);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b4e3ca1ab1ae9ae86134126dcdc88da1caaa32ca/rd.c/buggy/drivers/block/rd.c