if (SYS_IND(p) == 0) continue; 
int msdos_partition(struct parsed_partitions *state, struct block_device *bdev){	int sector_size = bdev_hardsect_size(bdev) / 512;	Sector sect;	unsigned char *data;	struct partition *p;	int slot;	data = read_dev_sector(bdev, 0, &sect);	if (!data)		return -1;	if (!msdos_magic_present(data + 510)) {		put_dev_sector(sect);		return 0;	}	/*	 * Now that the 55aa signature is present, this is probably	 * either the boot sector of a FAT filesystem or a DOS-type	 * partition table. Reject this in case the boot indicator	 * is not 0 or 0x80.	 */	p = (struct partition *) (data + 0x1be);	for (slot = 1; slot <= 4; slot++, p++) {		if (p->boot_ind != 0 && p->boot_ind != 0x80) {			put_dev_sector(sect);			return 0;		}	}#ifdef CONFIG_EFI_PARTITION	p = (struct partition *) (data + 0x1be);	for (slot = 1 ; slot <= 4 ; slot++, p++) {		/* If this is an EFI GPT disk, msdos should ignore it. */		if (SYS_IND(p) == EFI_PMBR_OSTYPE_EFI_GPT) {			put_dev_sector(sect);			return 0;		}	}#endif	p = (struct partition *) (data + 0x1be);	/*	 * Look for partitions in two passes:	 * First find the primary and DOS-type extended partitions.	 * On the second pass look inside *BSD, Unixware and Solaris partitions.	 */	state->next = 5;	for (slot = 1 ; slot <= 4 ; slot++, p++) {		u32 start = START_SECT(p)*sector_size;		u32 size = NR_SECTS(p)*sector_size;		if (SYS_IND(p) == 0)			continue;		if (!size)			continue;		if (is_extended_partition(p)) {			/* prevent someone doing mkfs or mkswap on an			   extended partition, but leave room for LILO */			put_partition(state, slot, start, size == 1 ? 1 : 2);			printk(" <");			parse_extended(state, bdev, start, size);			printk(" >");			continue;		}		put_partition(state, slot, start, size);		if (SYS_IND(p) == LINUX_RAID_PARTITION)			state->parts[slot].flags = 1;		if (SYS_IND(p) == DM6_PARTITION)			printk("[DM]");		if (SYS_IND(p) == EZD_PARTITION)			printk("[EZD]");	}	printk("\n");	/* second pass - output for each on a separate line */	p = (struct partition *) (0x1be + data);	for (slot = 1 ; slot <= 4 ; slot++, p++) {		unsigned char id = SYS_IND(p);		int n;		if (!NR_SECTS(p))			continue;		for (n = 0; subtypes[n].parse && id != subtypes[n].id; n++)			;		if (!subtypes[n].parse)			continue;		subtypes[n].parse(state, bdev, START_SECT(p)*sector_size,						NR_SECTS(p)*sector_size, slot);	}	put_dev_sector(sect);	return 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b2411dd202e854d1f3be541135af8bb9872ea8b6/msdos.c/clean/fs/partitions/msdos.c