[PATCH] kfree cleanup: fs
This is the fs/ part of the big kfree cleanup patch. Remove pointless checks for NULL prior to calling kfree() in fs/. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
		
							parent
							
								
									6044ec8882
								
							
						
					
					
						commit
						f99d49adf5
					
				| @ -269,8 +269,7 @@ static void v9fs_sock_close(struct v9fs_transport *trans) | ||||
| 		dprintk(DEBUG_TRANS, "socket closed\n"); | ||||
| 	} | ||||
| 
 | ||||
| 	if (ts) | ||||
| 		kfree(ts); | ||||
| 	kfree(ts); | ||||
| 
 | ||||
| 	trans->priv = NULL; | ||||
| } | ||||
|  | ||||
| @ -35,8 +35,7 @@ affs_put_super(struct super_block *sb) | ||||
| 		mark_buffer_dirty(sbi->s_root_bh); | ||||
| 	} | ||||
| 
 | ||||
| 	if (sbi->s_prefix) | ||||
| 		kfree(sbi->s_prefix); | ||||
| 	kfree(sbi->s_prefix); | ||||
| 	affs_free_bitmap(sb); | ||||
| 	affs_brelse(sbi->s_root_bh); | ||||
| 	kfree(sbi); | ||||
| @ -198,10 +197,9 @@ parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s | ||||
| 			*mount_opts |= SF_MUFS; | ||||
| 			break; | ||||
| 		case Opt_prefix: | ||||
| 			if (*prefix) {		/* Free any previous prefix */ | ||||
| 				kfree(*prefix); | ||||
| 				*prefix = NULL; | ||||
| 			} | ||||
| 			/* Free any previous prefix */ | ||||
| 			kfree(*prefix); | ||||
| 			*prefix = NULL; | ||||
| 			*prefix = match_strdup(&args[0]); | ||||
| 			if (!*prefix) | ||||
| 				return 0; | ||||
| @ -462,11 +460,9 @@ got_root: | ||||
| out_error: | ||||
| 	if (root_inode) | ||||
| 		iput(root_inode); | ||||
| 	if (sbi->s_bitmap) | ||||
| 		kfree(sbi->s_bitmap); | ||||
| 	kfree(sbi->s_bitmap); | ||||
| 	affs_brelse(root_bh); | ||||
| 	if (sbi->s_prefix) | ||||
| 		kfree(sbi->s_prefix); | ||||
| 	kfree(sbi->s_prefix); | ||||
| 	kfree(sbi); | ||||
| 	sb->s_fs_info = NULL; | ||||
| 	return -EINVAL; | ||||
|  | ||||
| @ -265,8 +265,7 @@ static int afs_file_releasepage(struct page *page, gfp_t gfp_flags) | ||||
| 		set_page_private(page, 0); | ||||
| 		ClearPagePrivate(page); | ||||
| 
 | ||||
| 		if (pageio) | ||||
| 			kfree(pageio); | ||||
| 		kfree(pageio); | ||||
| 	} | ||||
| 
 | ||||
| 	_leave(" = 0"); | ||||
|  | ||||
| @ -150,10 +150,8 @@ int autofs_wait(struct autofs_sb_info *sbi, struct qstr *name) | ||||
| 	if ( sbi->catatonic ) { | ||||
| 		/* We might have slept, so check again for catatonic mode */ | ||||
| 		wq->status = -ENOENT; | ||||
| 		if ( wq->name ) { | ||||
| 			kfree(wq->name); | ||||
| 			wq->name = NULL; | ||||
| 		} | ||||
| 		kfree(wq->name); | ||||
| 		wq->name = NULL; | ||||
| 	} | ||||
| 
 | ||||
| 	if ( wq->name ) { | ||||
|  | ||||
| @ -22,10 +22,8 @@ | ||||
| 
 | ||||
| static void ino_lnkfree(struct autofs_info *ino) | ||||
| { | ||||
| 	if (ino->u.symlink) { | ||||
| 		kfree(ino->u.symlink); | ||||
| 		ino->u.symlink = NULL; | ||||
| 	} | ||||
| 	kfree(ino->u.symlink); | ||||
| 	ino->u.symlink = NULL; | ||||
| } | ||||
| 
 | ||||
| struct autofs_info *autofs4_init_ino(struct autofs_info *ino, | ||||
|  | ||||
| @ -243,10 +243,8 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry, | ||||
| 	if ( sbi->catatonic ) { | ||||
| 		/* We might have slept, so check again for catatonic mode */ | ||||
| 		wq->status = -ENOENT; | ||||
| 		if ( wq->name ) { | ||||
| 			kfree(wq->name); | ||||
| 			wq->name = NULL; | ||||
| 		} | ||||
| 		kfree(wq->name); | ||||
| 		wq->name = NULL; | ||||
| 	} | ||||
| 
 | ||||
| 	if ( wq->name ) { | ||||
|  | ||||
| @ -725,20 +725,16 @@ parse_options(char *options, befs_mount_options * opts) | ||||
| static void | ||||
| befs_put_super(struct super_block *sb) | ||||
| { | ||||
| 	if (BEFS_SB(sb)->mount_opts.iocharset) { | ||||
| 		kfree(BEFS_SB(sb)->mount_opts.iocharset); | ||||
| 		BEFS_SB(sb)->mount_opts.iocharset = NULL; | ||||
| 	} | ||||
| 	kfree(BEFS_SB(sb)->mount_opts.iocharset); | ||||
| 	BEFS_SB(sb)->mount_opts.iocharset = NULL; | ||||
| 
 | ||||
| 	if (BEFS_SB(sb)->nls) { | ||||
| 		unload_nls(BEFS_SB(sb)->nls); | ||||
| 		BEFS_SB(sb)->nls = NULL; | ||||
| 	} | ||||
| 
 | ||||
| 	if (sb->s_fs_info) { | ||||
| 		kfree(sb->s_fs_info); | ||||
| 		sb->s_fs_info = NULL; | ||||
| 	} | ||||
| 	kfree(sb->s_fs_info); | ||||
| 	sb->s_fs_info = NULL; | ||||
| 	return; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -1006,8 +1006,7 @@ out_free_dentry: | ||||
| 	if (interpreter) | ||||
| 		fput(interpreter); | ||||
| out_free_interp: | ||||
| 	if (elf_interpreter) | ||||
| 		kfree(elf_interpreter); | ||||
| 	kfree(elf_interpreter); | ||||
| out_free_file: | ||||
| 	sys_close(elf_exec_fileno); | ||||
| out_free_fh: | ||||
|  | ||||
| @ -411,16 +411,11 @@ error: | ||||
| 		allow_write_access(interpreter); | ||||
| 		fput(interpreter); | ||||
| 	} | ||||
| 	if (interpreter_name) | ||||
| 		kfree(interpreter_name); | ||||
| 	if (exec_params.phdrs) | ||||
| 		kfree(exec_params.phdrs); | ||||
| 	if (exec_params.loadmap) | ||||
| 		kfree(exec_params.loadmap); | ||||
| 	if (interp_params.phdrs) | ||||
| 		kfree(interp_params.phdrs); | ||||
| 	if (interp_params.loadmap) | ||||
| 		kfree(interp_params.loadmap); | ||||
| 	kfree(interpreter_name); | ||||
| 	kfree(exec_params.phdrs); | ||||
| 	kfree(exec_params.loadmap); | ||||
| 	kfree(interp_params.phdrs); | ||||
| 	kfree(interp_params.loadmap); | ||||
| 	return retval; | ||||
| 
 | ||||
| 	/* unrecoverable error - kill the process */ | ||||
|  | ||||
| @ -553,8 +553,7 @@ decode_negTokenInit(unsigned char *security_blob, int length, | ||||
| 					   *(oid + 3))); | ||||
| 					rc = compare_oid(oid, oidlen, NTLMSSP_OID, | ||||
| 						 NTLMSSP_OID_LEN); | ||||
| 					if(oid) | ||||
| 						kfree(oid); | ||||
| 					kfree(oid); | ||||
| 					if (rc) | ||||
| 						use_ntlmssp = TRUE; | ||||
| 				} | ||||
|  | ||||
| @ -1265,8 +1265,7 @@ connect_to_dfs_path(int xid, struct cifsSesInfo *pSesInfo, | ||||
| 		the helper that resolves tcp names, mount to it, try to  | ||||
| 		tcon to it unmount it if fail */ | ||||
| 
 | ||||
| 	if(referrals) | ||||
| 		kfree(referrals); | ||||
| 	kfree(referrals); | ||||
| 
 | ||||
| 	return rc; | ||||
| } | ||||
| @ -1535,10 +1534,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 	 | ||||
| 	memset(&volume_info,0,sizeof(struct smb_vol)); | ||||
| 	if (cifs_parse_mount_options(mount_data, devname, &volume_info)) { | ||||
| 		if(volume_info.UNC) | ||||
| 			kfree(volume_info.UNC); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.UNC); | ||||
| 		kfree(volume_info.password); | ||||
| 		FreeXid(xid); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| @ -1551,10 +1548,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 		cifserror("No username specified "); | ||||
|         /* In userspace mount helper we can get user name from alternate
 | ||||
|            locations such as env variables and files on disk */ | ||||
| 		if(volume_info.UNC) | ||||
| 			kfree(volume_info.UNC); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.UNC); | ||||
| 		kfree(volume_info.password); | ||||
| 		FreeXid(xid); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| @ -1573,10 +1568,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
|         | ||||
| 		if(rc <= 0) { | ||||
| 			/* we failed translating address */ | ||||
| 			if(volume_info.UNC) | ||||
| 				kfree(volume_info.UNC); | ||||
| 			if(volume_info.password) | ||||
| 				kfree(volume_info.password); | ||||
| 			kfree(volume_info.UNC); | ||||
| 			kfree(volume_info.password); | ||||
| 			FreeXid(xid); | ||||
| 			return -EINVAL; | ||||
| 		} | ||||
| @ -1587,19 +1580,15 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 	} else if (volume_info.UNCip){ | ||||
| 		/* BB using ip addr as server name connect to the DFS root below */ | ||||
| 		cERROR(1,("Connecting to DFS root not implemented yet")); | ||||
| 		if(volume_info.UNC) | ||||
| 			kfree(volume_info.UNC); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.UNC); | ||||
| 		kfree(volume_info.password); | ||||
| 		FreeXid(xid); | ||||
| 		return -EINVAL; | ||||
| 	} else /* which servers DFS root would we conect to */ { | ||||
| 		cERROR(1, | ||||
| 		       ("CIFS mount error: No UNC path (e.g. -o unc=//192.168.1.100/public) specified  ")); | ||||
| 		if(volume_info.UNC) | ||||
| 			kfree(volume_info.UNC); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.UNC); | ||||
| 		kfree(volume_info.password); | ||||
| 		FreeXid(xid); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| @ -1612,10 +1601,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 		cifs_sb->local_nls = load_nls(volume_info.iocharset); | ||||
| 		if(cifs_sb->local_nls == NULL) { | ||||
| 			cERROR(1,("CIFS mount error: iocharset %s not found",volume_info.iocharset)); | ||||
| 			if(volume_info.UNC) | ||||
| 				kfree(volume_info.UNC); | ||||
| 			if(volume_info.password) | ||||
| 				kfree(volume_info.password); | ||||
| 			kfree(volume_info.UNC); | ||||
| 			kfree(volume_info.password); | ||||
| 			FreeXid(xid); | ||||
| 			return -ELIBACC; | ||||
| 		} | ||||
| @ -1630,10 +1617,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 			&sin_server6.sin6_addr, | ||||
| 			volume_info.username, &srvTcp); | ||||
| 	else { | ||||
| 		if(volume_info.UNC) | ||||
| 			kfree(volume_info.UNC); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.UNC); | ||||
| 		kfree(volume_info.password); | ||||
| 		FreeXid(xid); | ||||
| 		return -EINVAL; | ||||
| 	} | ||||
| @ -1654,10 +1639,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 			       ("Error connecting to IPv4 socket. Aborting operation")); | ||||
| 			if(csocket != NULL) | ||||
| 				sock_release(csocket); | ||||
| 			if(volume_info.UNC) | ||||
| 				kfree(volume_info.UNC); | ||||
| 			if(volume_info.password) | ||||
| 				kfree(volume_info.password); | ||||
| 			kfree(volume_info.UNC); | ||||
| 			kfree(volume_info.password); | ||||
| 			FreeXid(xid); | ||||
| 			return rc; | ||||
| 		} | ||||
| @ -1666,10 +1649,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 		if (srvTcp == NULL) { | ||||
| 			rc = -ENOMEM; | ||||
| 			sock_release(csocket); | ||||
| 			if(volume_info.UNC) | ||||
| 				kfree(volume_info.UNC); | ||||
| 			if(volume_info.password) | ||||
| 				kfree(volume_info.password); | ||||
| 			kfree(volume_info.UNC); | ||||
| 			kfree(volume_info.password); | ||||
| 			FreeXid(xid); | ||||
| 			return rc; | ||||
| 		} else { | ||||
| @ -1692,10 +1673,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 			if(rc < 0) { | ||||
| 				rc = -ENOMEM; | ||||
| 				sock_release(csocket); | ||||
| 				if(volume_info.UNC) | ||||
| 					kfree(volume_info.UNC); | ||||
| 				if(volume_info.password) | ||||
| 					kfree(volume_info.password); | ||||
| 				kfree(volume_info.UNC); | ||||
| 				kfree(volume_info.password); | ||||
| 				FreeXid(xid); | ||||
| 				return rc; | ||||
| 			} | ||||
| @ -1710,8 +1689,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 	if (existingCifsSes) { | ||||
| 		pSesInfo = existingCifsSes; | ||||
| 		cFYI(1, ("Existing smb sess found ")); | ||||
| 		if(volume_info.password) | ||||
| 			kfree(volume_info.password); | ||||
| 		kfree(volume_info.password); | ||||
| 		/* volume_info.UNC freed at end of function */ | ||||
| 	} else if (!rc) { | ||||
| 		cFYI(1, ("Existing smb sess not found ")); | ||||
| @ -1741,8 +1719,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 			if(!rc) | ||||
| 				atomic_inc(&srvTcp->socketUseCount); | ||||
| 		} else | ||||
| 			if(volume_info.password) | ||||
| 				kfree(volume_info.password); | ||||
| 			kfree(volume_info.password); | ||||
| 	} | ||||
|      | ||||
| 	/* search for existing tcon to this server share */ | ||||
| @ -1821,8 +1798,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 							"", cifs_sb->local_nls, | ||||
| 							cifs_sb->mnt_cifs_flags &  | ||||
| 							  CIFS_MOUNT_MAP_SPECIAL_CHR); | ||||
| 					if(volume_info.UNC) | ||||
| 						kfree(volume_info.UNC); | ||||
| 					kfree(volume_info.UNC); | ||||
| 					FreeXid(xid); | ||||
| 					return -ENODEV; | ||||
| 				} else { | ||||
| @ -1925,8 +1901,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | ||||
| 	(in which case it is not needed anymore) but when new sesion is created | ||||
| 	the password ptr is put in the new session structure (in which case the | ||||
| 	password will be freed at unmount time) */ | ||||
| 	if(volume_info.UNC) | ||||
| 		kfree(volume_info.UNC); | ||||
| 	kfree(volume_info.UNC); | ||||
| 	FreeXid(xid); | ||||
| 	return rc; | ||||
| } | ||||
| @ -3283,8 +3258,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | ||||
| 			if ((bcc_ptr + (2 * length)) - | ||||
| 			     pByteArea(smb_buffer_response) <= | ||||
| 			    BCC(smb_buffer_response)) { | ||||
| 				if(tcon->nativeFileSystem) | ||||
| 					kfree(tcon->nativeFileSystem); | ||||
| 				kfree(tcon->nativeFileSystem); | ||||
| 				tcon->nativeFileSystem = | ||||
| 				    kzalloc(length + 2, GFP_KERNEL); | ||||
| 				cifs_strfromUCS_le(tcon->nativeFileSystem, | ||||
| @ -3301,8 +3275,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses, | ||||
| 			if ((bcc_ptr + length) - | ||||
| 			    pByteArea(smb_buffer_response) <= | ||||
| 			    BCC(smb_buffer_response)) { | ||||
| 				if(tcon->nativeFileSystem) | ||||
| 					kfree(tcon->nativeFileSystem); | ||||
| 				kfree(tcon->nativeFileSystem); | ||||
| 				tcon->nativeFileSystem = | ||||
| 				    kzalloc(length + 1, GFP_KERNEL); | ||||
| 				strncpy(tcon->nativeFileSystem, bcc_ptr, | ||||
|  | ||||
| @ -84,10 +84,8 @@ cifs_hardlink(struct dentry *old_file, struct inode *inode, | ||||
| 	cifsInode->time = 0;	/* will force revalidate to go get info when needed */ | ||||
| 
 | ||||
| cifs_hl_exit: | ||||
| 	if (fromName) | ||||
| 		kfree(fromName); | ||||
| 	if (toName) | ||||
| 		kfree(toName); | ||||
| 	kfree(fromName); | ||||
| 	kfree(toName); | ||||
| 	FreeXid(xid); | ||||
| 	return rc; | ||||
| } | ||||
| @ -206,8 +204,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (full_path) | ||||
| 		kfree(full_path); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| 	return rc; | ||||
| } | ||||
| @ -253,8 +250,7 @@ cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen) | ||||
| 		len = buflen; | ||||
| 	tmpbuffer = kmalloc(len,GFP_KERNEL);    | ||||
| 	if(tmpbuffer == NULL) { | ||||
| 		if (full_path) | ||||
| 			kfree(full_path); | ||||
| 		kfree(full_path); | ||||
| 		FreeXid(xid); | ||||
| 		return -ENOMEM; | ||||
| 	} | ||||
| @ -303,8 +299,7 @@ cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen) | ||||
| 							strncpy(tmpbuffer, referrals, len-1);                             | ||||
| 						} | ||||
| 					} | ||||
| 					if(referrals) | ||||
| 						kfree(referrals); | ||||
| 					kfree(referrals); | ||||
| 					kfree(tmp_path); | ||||
| } | ||||
| 				/* BB add code like else decode referrals then memcpy to
 | ||||
| @ -323,12 +318,8 @@ cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen) | ||||
| 		      rc)); | ||||
| 	} | ||||
| 
 | ||||
| 	if (tmpbuffer) { | ||||
| 		kfree(tmpbuffer); | ||||
| 	} | ||||
| 	if (full_path) { | ||||
| 		kfree(full_path); | ||||
| 	} | ||||
| 	kfree(tmpbuffer); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| 	return rc; | ||||
| } | ||||
|  | ||||
| @ -98,14 +98,10 @@ sesInfoFree(struct cifsSesInfo *buf_to_free) | ||||
| 	atomic_dec(&sesInfoAllocCount); | ||||
| 	list_del(&buf_to_free->cifsSessionList); | ||||
| 	write_unlock(&GlobalSMBSeslock); | ||||
| 	if (buf_to_free->serverOS) | ||||
| 		kfree(buf_to_free->serverOS); | ||||
| 	if (buf_to_free->serverDomain) | ||||
| 		kfree(buf_to_free->serverDomain); | ||||
| 	if (buf_to_free->serverNOS) | ||||
| 		kfree(buf_to_free->serverNOS); | ||||
| 	if (buf_to_free->password) | ||||
| 		kfree(buf_to_free->password); | ||||
| 	kfree(buf_to_free->serverOS); | ||||
| 	kfree(buf_to_free->serverDomain); | ||||
| 	kfree(buf_to_free->serverNOS); | ||||
| 	kfree(buf_to_free->password); | ||||
| 	kfree(buf_to_free); | ||||
| } | ||||
| 
 | ||||
| @ -144,8 +140,7 @@ tconInfoFree(struct cifsTconInfo *buf_to_free) | ||||
| 	atomic_dec(&tconInfoAllocCount); | ||||
| 	list_del(&buf_to_free->cifsConnectionList); | ||||
| 	write_unlock(&GlobalSMBSeslock); | ||||
| 	if (buf_to_free->nativeFileSystem) | ||||
| 		kfree(buf_to_free->nativeFileSystem); | ||||
| 	kfree(buf_to_free->nativeFileSystem); | ||||
| 	kfree(buf_to_free); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -87,8 +87,7 @@ int cifs_removexattr(struct dentry * direntry, const char * ea_name) | ||||
| 			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); | ||||
| 	} | ||||
| remove_ea_exit: | ||||
| 	if (full_path) | ||||
| 		kfree(full_path); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| #endif | ||||
| 	return rc; | ||||
| @ -132,8 +131,7 @@ int cifs_setxattr(struct dentry * direntry, const char * ea_name, | ||||
| 		returns as xattrs */ | ||||
| 	if(value_size > MAX_EA_VALUE_SIZE) { | ||||
| 		cFYI(1,("size of EA value too large")); | ||||
| 		if(full_path) | ||||
| 			kfree(full_path); | ||||
| 		kfree(full_path); | ||||
| 		FreeXid(xid); | ||||
| 		return -EOPNOTSUPP; | ||||
| 	} | ||||
| @ -195,8 +193,7 @@ int cifs_setxattr(struct dentry * direntry, const char * ea_name, | ||||
| 	} | ||||
| 
 | ||||
| set_ea_exit: | ||||
| 	if (full_path) | ||||
| 		kfree(full_path); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| #endif | ||||
| 	return rc; | ||||
| @ -298,8 +295,7 @@ ssize_t cifs_getxattr(struct dentry * direntry, const char * ea_name, | ||||
| 		rc = -EOPNOTSUPP;  | ||||
| 
 | ||||
| get_ea_exit: | ||||
| 	if (full_path) | ||||
| 		kfree(full_path); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| #endif | ||||
| 	return rc; | ||||
| @ -345,8 +341,7 @@ ssize_t cifs_listxattr(struct dentry * direntry, char * data, size_t buf_size) | ||||
| 				cifs_sb->mnt_cifs_flags &  | ||||
| 					CIFS_MOUNT_MAP_SPECIAL_CHR); | ||||
| 
 | ||||
| 	if (full_path) | ||||
| 		kfree(full_path); | ||||
| 	kfree(full_path); | ||||
| 	FreeXid(xid); | ||||
| #endif | ||||
| 	return rc; | ||||
|  | ||||
| @ -2235,7 +2235,8 @@ static int fd_ioctl_trans(unsigned int fd, unsigned int cmd, unsigned long arg) | ||||
| 	if (err) | ||||
| 		err = -EFAULT; | ||||
| 
 | ||||
| out:	if (karg) kfree(karg); | ||||
| out: | ||||
| 	kfree(karg); | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -2738,10 +2738,8 @@ static int devfsd_close(struct inode *inode, struct file *file) | ||||
| 	entry = fs_info->devfsd_first_event; | ||||
| 	fs_info->devfsd_first_event = NULL; | ||||
| 	fs_info->devfsd_last_event = NULL; | ||||
| 	if (fs_info->devfsd_info) { | ||||
| 		kfree(fs_info->devfsd_info); | ||||
| 		fs_info->devfsd_info = NULL; | ||||
| 	} | ||||
| 	kfree(fs_info->devfsd_info); | ||||
| 	fs_info->devfsd_info = NULL; | ||||
| 	spin_unlock(&fs_info->devfsd_buffer_lock); | ||||
| 	fs_info->devfsd_pgrp = 0; | ||||
| 	fs_info->devfsd_task = NULL; | ||||
|  | ||||
| @ -194,8 +194,7 @@ ext2_get_acl(struct inode *inode, int type) | ||||
| 		acl = NULL; | ||||
| 	else | ||||
| 		acl = ERR_PTR(retval); | ||||
| 	if (value) | ||||
| 		kfree(value); | ||||
| 	kfree(value); | ||||
| 
 | ||||
| 	if (!IS_ERR(acl)) { | ||||
| 		switch(type) { | ||||
| @ -262,8 +261,7 @@ ext2_set_acl(struct inode *inode, int type, struct posix_acl *acl) | ||||
| 
 | ||||
| 	error = ext2_xattr_set(inode, name_index, "", value, size, 0); | ||||
| 
 | ||||
| 	if (value) | ||||
| 		kfree(value); | ||||
| 	kfree(value); | ||||
| 	if (!error) { | ||||
| 		switch(type) { | ||||
| 			case ACL_TYPE_ACCESS: | ||||
|  | ||||
| @ -294,8 +294,7 @@ static void hostfs_delete_inode(struct inode *inode) | ||||
| 
 | ||||
| static void hostfs_destroy_inode(struct inode *inode) | ||||
| { | ||||
| 	if(HOSTFS_I(inode)->host_filename) | ||||
| 		kfree(HOSTFS_I(inode)->host_filename); | ||||
| 	kfree(HOSTFS_I(inode)->host_filename); | ||||
| 
 | ||||
| 	/*XXX: This should not happen, probably. The check is here for
 | ||||
| 	 * additional safety.*/ | ||||
|  | ||||
| @ -244,12 +244,12 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno, | ||||
| 	go_up: | ||||
| 	if (namelen >= 256) { | ||||
| 		hpfs_error(i->i_sb, "hpfs_add_to_dnode: namelen == %d", namelen); | ||||
| 		if (nd) kfree(nd); | ||||
| 		kfree(nd); | ||||
| 		kfree(nname); | ||||
| 		return 1; | ||||
| 	} | ||||
| 	if (!(d = hpfs_map_dnode(i->i_sb, dno, &qbh))) { | ||||
| 		if (nd) kfree(nd); | ||||
| 		kfree(nd); | ||||
| 		kfree(nname); | ||||
| 		return 1; | ||||
| 	} | ||||
| @ -257,7 +257,7 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno, | ||||
| 	if (hpfs_sb(i->i_sb)->sb_chk) | ||||
| 		if (hpfs_stop_cycles(i->i_sb, dno, &c1, &c2, "hpfs_add_to_dnode")) { | ||||
| 			hpfs_brelse4(&qbh); | ||||
| 			if (nd) kfree(nd); | ||||
| 			kfree(nd); | ||||
| 			kfree(nname); | ||||
| 			return 1; | ||||
| 		} | ||||
| @ -270,7 +270,7 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno, | ||||
| 		for_all_poss(i, hpfs_pos_subst, 5, t + 1); | ||||
| 		hpfs_mark_4buffers_dirty(&qbh); | ||||
| 		hpfs_brelse4(&qbh); | ||||
| 		if (nd) kfree(nd); | ||||
| 		kfree(nd); | ||||
| 		kfree(nname); | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| @ -75,7 +75,7 @@ void hpfs_error(struct super_block *s, char *m,...) | ||||
| 		} else if (s->s_flags & MS_RDONLY) printk("; going on - but anything won't be destroyed because it's read-only\n"); | ||||
| 		else printk("; corrupted filesystem mounted read/write - your computer will explode within 20 seconds ... but you wanted it so!\n"); | ||||
| 	} else printk("\n"); | ||||
| 	if (buf) kfree(buf); | ||||
| 	kfree(buf); | ||||
| 	hpfs_sb(s)->sb_was_error = 1; | ||||
| } | ||||
| 
 | ||||
| @ -102,8 +102,8 @@ int hpfs_stop_cycles(struct super_block *s, int key, int *c1, int *c2, | ||||
| static void hpfs_put_super(struct super_block *s) | ||||
| { | ||||
| 	struct hpfs_sb_info *sbi = hpfs_sb(s); | ||||
| 	if (sbi->sb_cp_table) kfree(sbi->sb_cp_table); | ||||
| 	if (sbi->sb_bmp_dir) kfree(sbi->sb_bmp_dir); | ||||
| 	kfree(sbi->sb_cp_table); | ||||
| 	kfree(sbi->sb_bmp_dir); | ||||
| 	unmark_dirty(s); | ||||
| 	s->s_fs_info = NULL; | ||||
| 	kfree(sbi); | ||||
| @ -654,8 +654,8 @@ bail3:	brelse(bh1); | ||||
| bail2:	brelse(bh0); | ||||
| bail1: | ||||
| bail0: | ||||
| 	if (sbi->sb_bmp_dir) kfree(sbi->sb_bmp_dir); | ||||
| 	if (sbi->sb_cp_table) kfree(sbi->sb_cp_table); | ||||
| 	kfree(sbi->sb_bmp_dir); | ||||
| 	kfree(sbi->sb_cp_table); | ||||
| 	s->s_fs_info = NULL; | ||||
| 	kfree(sbi); | ||||
| 	return -EINVAL; | ||||
|  | ||||
| @ -855,8 +855,7 @@ root_found: | ||||
| 	if (opt.check == 'r') table++; | ||||
| 	s->s_root->d_op = &isofs_dentry_ops[table]; | ||||
| 
 | ||||
| 	if (opt.iocharset) | ||||
| 		kfree(opt.iocharset); | ||||
| 	kfree(opt.iocharset); | ||||
| 
 | ||||
| 	return 0; | ||||
| 
 | ||||
| @ -895,8 +894,7 @@ out_unknown_format: | ||||
| out_freebh: | ||||
| 	brelse(bh); | ||||
| out_freesbi: | ||||
| 	if (opt.iocharset) | ||||
| 		kfree(opt.iocharset); | ||||
| 	kfree(opt.iocharset); | ||||
| 	kfree(sbi); | ||||
| 	s->s_fs_info = NULL; | ||||
| 	return -EINVAL; | ||||
| @ -1164,8 +1162,7 @@ out_nomem: | ||||
| 
 | ||||
| out_noread: | ||||
| 	printk(KERN_INFO "ISOFS: unable to read i-node block %lu\n", block); | ||||
| 	if (tmpde) | ||||
| 		kfree(tmpde); | ||||
| 	kfree(tmpde); | ||||
| 	return -EIO; | ||||
| 
 | ||||
| out_toomany: | ||||
| @ -1334,8 +1331,7 @@ static void isofs_read_inode(struct inode *inode) | ||||
| 		init_special_inode(inode, inode->i_mode, inode->i_rdev); | ||||
| 
 | ||||
| out: | ||||
| 	if (tmpde) | ||||
| 		kfree(tmpde); | ||||
| 	kfree(tmpde); | ||||
| 	if (bh) | ||||
| 		brelse(bh); | ||||
| 	return; | ||||
|  | ||||
| @ -261,10 +261,8 @@ void journal_commit_transaction(journal_t *journal) | ||||
| 			struct buffer_head *bh = jh2bh(jh); | ||||
| 
 | ||||
| 			jbd_lock_bh_state(bh); | ||||
| 			if (jh->b_committed_data) { | ||||
| 				kfree(jh->b_committed_data); | ||||
| 				jh->b_committed_data = NULL; | ||||
| 			} | ||||
| 			kfree(jh->b_committed_data); | ||||
| 			jh->b_committed_data = NULL; | ||||
| 			jbd_unlock_bh_state(bh); | ||||
| 		} | ||||
| 		journal_refile_buffer(journal, jh); | ||||
|  | ||||
| @ -227,8 +227,7 @@ repeat_locked: | ||||
| 	spin_unlock(&transaction->t_handle_lock); | ||||
| 	spin_unlock(&journal->j_state_lock); | ||||
| out: | ||||
| 	if (new_transaction) | ||||
| 		kfree(new_transaction); | ||||
| 	kfree(new_transaction); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| @ -725,8 +724,7 @@ done: | ||||
| 	journal_cancel_revoke(handle, jh); | ||||
| 
 | ||||
| out: | ||||
| 	if (frozen_buffer) | ||||
| 		kfree(frozen_buffer); | ||||
| 	kfree(frozen_buffer); | ||||
| 
 | ||||
| 	JBUFFER_TRACE(jh, "exit"); | ||||
| 	return error; | ||||
| @ -905,8 +903,7 @@ repeat: | ||||
| 	jbd_unlock_bh_state(bh); | ||||
| out: | ||||
| 	journal_put_journal_head(jh); | ||||
| 	if (committed_data) | ||||
| 		kfree(committed_data); | ||||
| 	kfree(committed_data); | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -462,7 +462,7 @@ jffs_checksum_flash(struct mtd_info *mtd, loff_t start, int size, __u32 *result) | ||||
| 	} | ||||
| 
 | ||||
| 	/* Free read buffer */ | ||||
| 	kfree (read_buf); | ||||
| 	kfree(read_buf); | ||||
| 
 | ||||
| 	/* Return result */ | ||||
| 	D3(printk("checksum result: 0x%08x\n", sum)); | ||||
| @ -1011,12 +1011,12 @@ jffs_scan_flash(struct jffs_control *c) | ||||
| 						       offset , fmc->sector_size); | ||||
| 
 | ||||
| 						flash_safe_release(fmc->mtd); | ||||
| 						kfree (read_buf); | ||||
| 						kfree(read_buf); | ||||
| 						return -1; /* bad, bad, bad! */ | ||||
| 
 | ||||
| 					} | ||||
| 					flash_safe_release(fmc->mtd); | ||||
| 					kfree (read_buf); | ||||
| 					kfree(read_buf); | ||||
| 
 | ||||
| 					return -EAGAIN; /* erased offending sector. Try mount one more time please. */ | ||||
| 				} | ||||
| @ -1112,7 +1112,7 @@ jffs_scan_flash(struct jffs_control *c) | ||||
| 		if (!node) { | ||||
| 			if (!(node = jffs_alloc_node())) { | ||||
| 				/* Free read buffer */ | ||||
| 				kfree (read_buf); | ||||
| 				kfree(read_buf); | ||||
| 
 | ||||
| 				/* Release the flash device */ | ||||
| 				flash_safe_release(fmc->mtd); | ||||
| @ -1269,7 +1269,7 @@ jffs_scan_flash(struct jffs_control *c) | ||||
| 				DJM(no_jffs_node--); | ||||
| 
 | ||||
| 				/* Free read buffer */ | ||||
| 				kfree (read_buf); | ||||
| 				kfree(read_buf); | ||||
| 
 | ||||
| 				/* Release the flash device */ | ||||
| 				flash_safe_release(fmc->mtd); | ||||
| @ -1296,7 +1296,7 @@ jffs_scan_flash(struct jffs_control *c) | ||||
| 					flash_safe_release(fmc->flash_part); | ||||
| 
 | ||||
| 					/* Free read buffer */ | ||||
| 					kfree (read_buf); | ||||
| 					kfree(read_buf); | ||||
| 
 | ||||
| 					return -ENOMEM; | ||||
| 				} | ||||
| @ -1324,7 +1324,7 @@ jffs_scan_flash(struct jffs_control *c) | ||||
| 	jffs_build_end(fmc); | ||||
| 
 | ||||
| 	/* Free read buffer */ | ||||
| 	kfree (read_buf); | ||||
| 	kfree(read_buf); | ||||
| 
 | ||||
| 	if(!num_free_space){ | ||||
| 	        printk(KERN_WARNING "jffs_scan_flash(): Did not find even a single " | ||||
| @ -1747,9 +1747,7 @@ jffs_find_child(struct jffs_file *dir, const char *name, int len) | ||||
| 		} | ||||
| 		printk("jffs_find_child(): Didn't find the file \"%s\".\n", | ||||
| 		       (copy ? copy : "")); | ||||
| 		if (copy) { | ||||
| 			kfree(copy); | ||||
| 		} | ||||
| 		kfree(copy); | ||||
| 	}); | ||||
| 
 | ||||
| 	return f; | ||||
|  | ||||
| @ -490,7 +490,7 @@ int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *i | ||||
| 		up(&f->sem); | ||||
| 		jffs2_do_clear_inode(c, f); | ||||
| 	} | ||||
| 	kfree (f); | ||||
| 	kfree(f); | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| @ -742,10 +742,8 @@ void jffs2_do_clear_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f) | ||||
| 
 | ||||
| 	/* For symlink inodes we us f->dents to store the target path name */ | ||||
| 	if (S_ISLNK(OFNI_EDONI_2SFFJ(f)->i_mode)) { | ||||
| 		if (f->dents) { | ||||
| 			kfree(f->dents); | ||||
| 			f->dents = NULL; | ||||
| 		} | ||||
| 		kfree(f->dents); | ||||
| 		f->dents = NULL; | ||||
| 	} else { | ||||
| 		fds = f->dents; | ||||
| 
 | ||||
|  | ||||
| @ -327,8 +327,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c) | ||||
| 		c->wbuf_ofs = ofs + towrite; | ||||
| 		memmove(c->wbuf, rewrite_buf + towrite, c->wbuf_len); | ||||
| 		/* Don't muck about with c->wbuf_inodes. False positives are harmless. */ | ||||
| 		if (buf) | ||||
| 			kfree(buf); | ||||
| 		kfree(buf); | ||||
| 	} else { | ||||
| 		/* OK, now we're left with the dregs in whichever buffer we're using */ | ||||
| 		if (buf) { | ||||
|  | ||||
| @ -112,8 +112,7 @@ static struct nlm_lockowner *nlm_find_lockowner(struct nlm_host *host, fl_owner_ | ||||
| 		} | ||||
| 	} | ||||
| 	spin_unlock(&host->h_lock); | ||||
| 	if (new != NULL) | ||||
| 		kfree(new); | ||||
| 	kfree(new); | ||||
| 	return res; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -301,8 +301,7 @@ fail: | ||||
| 	if (cache) { | ||||
| 		while (--m >= 0) | ||||
| 			kfree(cache->c_indexes_hash[m]); | ||||
| 		if (cache->c_block_hash) | ||||
| 			kfree(cache->c_block_hash); | ||||
| 		kfree(cache->c_block_hash); | ||||
| 		kfree(cache); | ||||
| 	} | ||||
| 	return NULL; | ||||
|  | ||||
| @ -149,8 +149,7 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct | ||||
| 		} | ||||
| 	} | ||||
| 	spin_unlock(&clp->cl_lock); | ||||
| 	if (delegation != NULL) | ||||
| 		kfree(delegation); | ||||
| 	kfree(delegation); | ||||
| 	return status; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -1688,8 +1688,7 @@ static void nfs_kill_super(struct super_block *s) | ||||
| 
 | ||||
| 	rpciod_down();		/* release rpciod */ | ||||
| 
 | ||||
| 	if (server->hostname != NULL) | ||||
| 		kfree(server->hostname); | ||||
| 	kfree(server->hostname); | ||||
| 	kfree(server); | ||||
| } | ||||
| 
 | ||||
| @ -1908,8 +1907,7 @@ nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) | ||||
| 			return ERR_PTR(-ENOMEM); | ||||
| 	} | ||||
| 	if (copy_from_user(dst, src->data, maxlen)) { | ||||
| 		if (p != NULL) | ||||
| 			kfree(p); | ||||
| 		kfree(p); | ||||
| 		return ERR_PTR(-EFAULT); | ||||
| 	} | ||||
| 	dst[maxlen] = '\0'; | ||||
| @ -2000,10 +1998,8 @@ static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, | ||||
| out_err: | ||||
| 	s = (struct super_block *)p; | ||||
| out_free: | ||||
| 	if (server->mnt_path) | ||||
| 		kfree(server->mnt_path); | ||||
| 	if (server->hostname) | ||||
| 		kfree(server->hostname); | ||||
| 	kfree(server->mnt_path); | ||||
| 	kfree(server->hostname); | ||||
| 	kfree(server); | ||||
| 	return s; | ||||
| } | ||||
| @ -2023,8 +2019,7 @@ static void nfs4_kill_super(struct super_block *sb) | ||||
| 
 | ||||
| 	destroy_nfsv4_state(server); | ||||
| 
 | ||||
| 	if (server->hostname != NULL) | ||||
| 		kfree(server->hostname); | ||||
| 	kfree(server->hostname); | ||||
| 	kfree(server); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -69,10 +69,8 @@ init_nfsv4_state(struct nfs_server *server) | ||||
| void | ||||
| destroy_nfsv4_state(struct nfs_server *server) | ||||
| { | ||||
| 	if (server->mnt_path) { | ||||
| 		kfree(server->mnt_path); | ||||
| 		server->mnt_path = NULL; | ||||
| 	} | ||||
| 	kfree(server->mnt_path); | ||||
| 	server->mnt_path = NULL; | ||||
| 	if (server->nfs4_state) { | ||||
| 		nfs4_put_client(server->nfs4_state); | ||||
| 		server->nfs4_state = NULL; | ||||
| @ -311,8 +309,7 @@ struct nfs4_state_owner *nfs4_get_state_owner(struct nfs_server *server, struct | ||||
| 		new = NULL; | ||||
| 	} | ||||
| 	spin_unlock(&clp->cl_lock); | ||||
| 	if (new) | ||||
| 		kfree(new); | ||||
| 	kfree(new); | ||||
| 	if (sp != NULL) | ||||
| 		return sp; | ||||
| 	put_rpccred(cred); | ||||
|  | ||||
| @ -52,8 +52,7 @@ nfs_put_unlinkdata(struct nfs_unlinkdata *data) | ||||
| { | ||||
| 	if (--data->count == 0) { | ||||
| 		nfs_detach_unlinkdata(data); | ||||
| 		if (data->name.name != NULL) | ||||
| 			kfree(data->name.name); | ||||
| 		kfree(data->name.name); | ||||
| 		kfree(data); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -190,8 +190,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen) | ||||
|  out: | ||||
| 	if (dom) | ||||
| 		auth_domain_put(dom); | ||||
| 	if (buf) | ||||
| 		kfree(buf); | ||||
| 	kfree(buf); | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
| @ -428,8 +427,7 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) | ||||
| 		path_release(&nd); | ||||
| 	if (dom) | ||||
| 		auth_domain_put(dom); | ||||
| 	if (buf) | ||||
| 		kfree(buf); | ||||
| 	kfree(buf); | ||||
| 	return err; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -151,8 +151,7 @@ static u32 *read_buf(struct nfsd4_compoundargs *argp, int nbytes) | ||||
| 	if (nbytes <= sizeof(argp->tmp)) | ||||
| 		p = argp->tmp; | ||||
| 	else { | ||||
| 		if (argp->tmpp) | ||||
| 			kfree(argp->tmpp); | ||||
| 		kfree(argp->tmpp); | ||||
| 		p = argp->tmpp = kmalloc(nbytes, GFP_KERNEL); | ||||
| 		if (!p) | ||||
| 			return NULL; | ||||
| @ -2476,10 +2475,8 @@ void nfsd4_release_compoundargs(struct nfsd4_compoundargs *args) | ||||
| 		kfree(args->ops); | ||||
| 		args->ops = args->iops; | ||||
| 	} | ||||
| 	if (args->tmpp) { | ||||
| 		kfree(args->tmpp); | ||||
| 		args->tmpp = NULL; | ||||
| 	} | ||||
| 	kfree(args->tmpp); | ||||
| 	args->tmpp = NULL; | ||||
| 	while (args->to_free) { | ||||
| 		struct tmpbuf *tb = args->to_free; | ||||
| 		args->to_free = tb->next; | ||||
|  | ||||
| @ -93,8 +93,7 @@ nfsd_cache_shutdown(void) | ||||
| 
 | ||||
| 	cache_disabled = 1; | ||||
| 
 | ||||
| 	if (hash_list) | ||||
| 		kfree (hash_list); | ||||
| 	kfree (hash_list); | ||||
| 	hash_list = NULL; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -1088,8 +1088,7 @@ static void __exit exit_openprom_fs(void) | ||||
| 	unregister_filesystem(&openprom_fs_type); | ||||
| 	free_pages ((unsigned long)nodes, alloced); | ||||
| 	for (i = 0; i < aliases_nodes; i++) | ||||
| 		if (alias_names [i]) | ||||
| 			kfree (alias_names [i]); | ||||
| 		kfree (alias_names [i]); | ||||
| 	nodes = NULL; | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -39,8 +39,7 @@ static inline struct udf_sb_info *UDF_SB(struct super_block *sb) | ||||
| {\ | ||||
| 	if (UDF_SB(X))\ | ||||
| 	{\ | ||||
| 		if (UDF_SB_PARTMAPS(X))\ | ||||
| 			kfree(UDF_SB_PARTMAPS(X));\ | ||||
| 		kfree(UDF_SB_PARTMAPS(X));\ | ||||
| 		UDF_SB_PARTMAPS(X) = NULL;\ | ||||
| 	}\ | ||||
| } | ||||
|  | ||||
| @ -472,13 +472,14 @@ static int ufs_read_cylinder_structures (struct super_block *sb) { | ||||
| 	return 1; | ||||
| 
 | ||||
| failed: | ||||
| 	if (base) kfree (base); | ||||
| 	kfree (base); | ||||
| 	if (sbi->s_ucg) { | ||||
| 		for (i = 0; i < uspi->s_ncg; i++) | ||||
| 			if (sbi->s_ucg[i]) brelse (sbi->s_ucg[i]); | ||||
| 			if (sbi->s_ucg[i]) | ||||
| 				brelse (sbi->s_ucg[i]); | ||||
| 		kfree (sbi->s_ucg); | ||||
| 		for (i = 0; i < UFS_MAX_GROUP_LOADED; i++) | ||||
| 			if (sbi->s_ucpi[i]) kfree (sbi->s_ucpi[i]); | ||||
| 			kfree (sbi->s_ucpi[i]); | ||||
| 	} | ||||
| 	UFSD(("EXIT (FAILED)\n")) | ||||
| 	return 0; | ||||
| @ -981,9 +982,10 @@ magic_found: | ||||
| dalloc_failed: | ||||
| 	iput(inode); | ||||
| failed: | ||||
| 	if (ubh) ubh_brelse_uspi (uspi); | ||||
| 	if (uspi) kfree (uspi); | ||||
| 	if (sbi) kfree(sbi); | ||||
| 	if (ubh) | ||||
| 		ubh_brelse_uspi (uspi); | ||||
| 	kfree (uspi); | ||||
| 	kfree(sbi); | ||||
| 	sb->s_fs_info = NULL; | ||||
| 	UFSD(("EXIT (FAILED)\n")) | ||||
| 	return -EINVAL; | ||||
|  | ||||
| @ -74,8 +74,7 @@ setxattr(struct dentry *d, char __user *name, void __user *value, | ||||
| 	} | ||||
| out: | ||||
| 	up(&d->d_inode->i_sem); | ||||
| 	if (kvalue) | ||||
| 		kfree(kvalue); | ||||
| 	kfree(kvalue); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
| @ -173,8 +172,7 @@ getxattr(struct dentry *d, char __user *name, void __user *value, size_t size) | ||||
| 		error = -E2BIG; | ||||
| 	} | ||||
| out: | ||||
| 	if (kvalue) | ||||
| 		kfree(kvalue); | ||||
| 	kfree(kvalue); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
| @ -259,8 +257,7 @@ listxattr(struct dentry *d, char __user *list, size_t size) | ||||
| 		error = -E2BIG; | ||||
| 	} | ||||
| out: | ||||
| 	if (klist) | ||||
| 		kfree(klist); | ||||
| 	kfree(klist); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user