if (nfsacl_desc->count < nfsacl_desc->acl->a_count) { struct posix_acl_entry *entry = &nfsacl_desc->acl->a_entries[nfsacl_desc->count++]; 
struct posix_acl_entry *entry = &nfsacl_desc->acl->a_entries[nfsacl_desc->count++]; 
xdr_nfsace_encode(struct xdr_array2_desc *desc, void *elem){	struct nfsacl_encode_desc *nfsacl_desc =		(struct nfsacl_encode_desc *) desc;	u32 *p = (u32 *) elem;	if (nfsacl_desc->count < nfsacl_desc->acl->a_count) {		struct posix_acl_entry *entry =			&nfsacl_desc->acl->a_entries[nfsacl_desc->count++];		*p++ = htonl(entry->e_tag | nfsacl_desc->typeflag);		switch(entry->e_tag) {			case ACL_USER_OBJ:				*p++ = htonl(nfsacl_desc->uid);				break;			case ACL_GROUP_OBJ:				*p++ = htonl(nfsacl_desc->gid);				break;			case ACL_USER:			case ACL_GROUP:				*p++ = htonl(entry->e_id);				break;			default:  /* Solaris depends on that! */				*p++ = 0;				break;		}		*p++ = htonl(entry->e_perm & S_IRWXO);	} else {		const struct posix_acl_entry *pa, *pe;		int group_obj_perm = ACL_READ|ACL_WRITE|ACL_EXECUTE;		FOREACH_ACL_ENTRY(pa, nfsacl_desc->acl, pe) {			if (pa->e_tag == ACL_GROUP_OBJ) {				group_obj_perm = pa->e_perm & S_IRWXO;				break;			}		}		/* fake up ACL_MASK entry */		*p++ = htonl(ACL_MASK | nfsacl_desc->typeflag);		*p++ = htonl(0);		*p++ = htonl(group_obj_perm);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/22c1ea44f0d33eda532883858b6cdabc5f265b66/nfsacl.c/buggy/fs/nfs_common/nfsacl.c