/* Restore default gfp_mask for bdev */ mapping_set_gfp_mask(bdev_mapping, GFP_USER);  
int jfs_umount(struct super_block *sb){	struct address_space *bdev_mapping = sb->s_bdev->bd_inode->i_mapping;	struct jfs_sb_info *sbi = JFS_SBI(sb);	struct inode *ipbmap = sbi->ipbmap;	struct inode *ipimap = sbi->ipimap;	struct inode *ipaimap = sbi->ipaimap;	struct inode *ipaimap2 = sbi->ipaimap2;	struct jfs_log *log;	int rc = 0;	jfs_info("UnMount JFS: sb:0x%p", sb);	/*	 *      update superblock and close log 	 *	 * if mounted read-write and log based recovery was enabled	 */	if ((log = sbi->log))		/*		 * Wait for outstanding transactions to be written to log: 		 */		jfs_flush_journal(log, 2);	/*	 * close fileset inode allocation map (aka fileset inode)	 */	diUnmount(ipimap, 0);	diFreeSpecial(ipimap);	sbi->ipimap = NULL;	/*	 * close secondary aggregate inode allocation map	 */	ipaimap2 = sbi->ipaimap2;	if (ipaimap2) {		diUnmount(ipaimap2, 0);		diFreeSpecial(ipaimap2);		sbi->ipaimap2 = NULL;	}	/*	 * close aggregate inode allocation map	 */	ipaimap = sbi->ipaimap;	diUnmount(ipaimap, 0);	diFreeSpecial(ipaimap);	sbi->ipaimap = NULL;	/*	 * close aggregate block allocation map	 */	dbUnmount(ipbmap, 0);	diFreeSpecial(ipbmap);	sbi->ipimap = NULL;	/*	 * Make sure all metadata makes it to disk before we mark	 * the superblock as clean	 */	filemap_fdatawrite(bdev_mapping);	filemap_fdatawait(bdev_mapping);	/*	 * ensure all file system file pages are propagated to their	 * home blocks on disk (and their in-memory buffer pages are 	 * invalidated) BEFORE updating file system superblock state	 * (to signify file system is unmounted cleanly, and thus in 	 * consistent state) and log superblock active file system 	 * list (to signify skip logredo()).	 */	if (log) {		/* log = NULL if read-only mount */		updateSuper(sb, FM_CLEAN);		/* Restore default gfp_mask for bdev */		mapping_set_gfp_mask(bdev_mapping, GFP_USER);		/*		 * close log: 		 *		 * remove file system from log active file system list.		 */		rc = lmLogClose(sb);	}	jfs_info("UnMount JFS Complete: rc = %d", rc);	return rc;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7fab479bebb96b1b4888bdae9b42e1fa9c5d3f38/jfs_umount.c/buggy/fs/jfs/jfs_umount.c