if (subdir && subdir->nr_swapped) { 
if (subdir && page_private(subdir)) { 
static int shmem_unuse_inode(struct shmem_inode_info *info, swp_entry_t entry, struct page *page){	struct inode *inode;	unsigned long idx;	unsigned long size;	unsigned long limit;	unsigned long stage;	struct page **dir;	struct page *subdir;	swp_entry_t *ptr;	int offset;	idx = 0;	ptr = info->i_direct;	spin_lock(&info->lock);	limit = info->next_index;	size = limit;	if (size > SHMEM_NR_DIRECT)		size = SHMEM_NR_DIRECT;	offset = shmem_find_swp(entry, ptr, ptr+size);	if (offset >= 0) {		shmem_swp_balance_unmap();		goto found;	}	if (!info->i_indirect)		goto lost2;	dir = shmem_dir_map(info->i_indirect);	stage = SHMEM_NR_DIRECT + ENTRIES_PER_PAGEPAGE/2;	for (idx = SHMEM_NR_DIRECT; idx < limit; idx += ENTRIES_PER_PAGE, dir++) {		if (unlikely(idx == stage)) {			shmem_dir_unmap(dir-1);			dir = shmem_dir_map(info->i_indirect) +			    ENTRIES_PER_PAGE/2 + idx/ENTRIES_PER_PAGEPAGE;			while (!*dir) {				dir++;				idx += ENTRIES_PER_PAGEPAGE;				if (idx >= limit)					goto lost1;			}			stage = idx + ENTRIES_PER_PAGEPAGE;			subdir = *dir;			shmem_dir_unmap(dir);			dir = shmem_dir_map(subdir);		}		subdir = *dir;		if (subdir && subdir->nr_swapped) {			ptr = shmem_swp_map(subdir);			size = limit - idx;			if (size > ENTRIES_PER_PAGE)				size = ENTRIES_PER_PAGE;			offset = shmem_find_swp(entry, ptr, ptr+size);			if (offset >= 0) {				shmem_dir_unmap(dir);				goto found;			}			shmem_swp_unmap(ptr);		}	}lost1:	shmem_dir_unmap(dir-1);lost2:	spin_unlock(&info->lock);	return 0;found:	idx += offset;	inode = &info->vfs_inode;	if (move_from_swap_cache(page, idx, inode->i_mapping) == 0) {		info->flags |= SHMEM_PAGEIN;		shmem_swp_set(info, ptr + offset, 0);	}	shmem_swp_unmap(ptr);	spin_unlock(&info->lock);	/*	 * Decrement swap count even when the entry is left behind:	 * try_to_unuse will skip over mms, then reincrement count.	 */	swap_free(entry);	return 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4c21e2f2441dc5fbb957b030333f5a3f2d02dea7/shmem.c/clean/mm/shmem.c