if (value) kfree(value); 
kfree(value); 
ext2_get_acl(struct inode *inode, int type){	struct ext2_inode_info *ei = EXT2_I(inode);	int name_index;	char *value = NULL;	struct posix_acl *acl;	int retval;	if (!test_opt(inode->i_sb, POSIX_ACL))		return NULL;	switch(type) {		case ACL_TYPE_ACCESS:			acl = ext2_iget_acl(inode, &ei->i_acl);			if (acl != EXT2_ACL_NOT_CACHED)				return acl;			name_index = EXT2_XATTR_INDEX_POSIX_ACL_ACCESS;			break;		case ACL_TYPE_DEFAULT:			acl = ext2_iget_acl(inode, &ei->i_default_acl);			if (acl != EXT2_ACL_NOT_CACHED)				return acl;			name_index = EXT2_XATTR_INDEX_POSIX_ACL_DEFAULT;			break;		default:			return ERR_PTR(-EINVAL);	}	retval = ext2_xattr_get(inode, name_index, "", NULL, 0);	if (retval > 0) {		value = kmalloc(retval, GFP_KERNEL);		if (!value)			return ERR_PTR(-ENOMEM);		retval = ext2_xattr_get(inode, name_index, "", value, retval);	}	if (retval > 0)		acl = ext2_acl_from_disk(value, retval);	else if (retval == -ENODATA || retval == -ENOSYS)		acl = NULL;	else		acl = ERR_PTR(retval);	if (value)		kfree(value);	if (!IS_ERR(acl)) {		switch(type) {			case ACL_TYPE_ACCESS:				ext2_iset_acl(inode, &ei->i_acl, acl);				break;			case ACL_TYPE_DEFAULT:				ext2_iset_acl(inode, &ei->i_default_acl, acl);				break;		}	}	return acl;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f99d49adf527fa6f7a9c42257fa76bca6b8df1e3/acl.c/clean/fs/ext2/acl.c