Re: [PATCH 1/4] ide-tape: remove tape->cache_stage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 11, 2008 at 12:24:51AM +0100, Bartlomiej Zolnierkiewicz wrote:
> On Sunday 09 March 2008, Borislav Petkov wrote:
> > Prior to allocating a new pipeline stage, the code checked for the existence of
> > a cached pipeline stage to use. Do away with and stick to normal pipeline
> > stages only.
> > 
> > Signed-off-by: Borislav Petkov <petkovbb@xxxxxxxxx>
> 
> I modified it slightly while merging since AFAICS we still need to check
> 'tape->nr_stages >= tape_max_stages' for idetape_add_chrdev_write_request().

Yep, thanks for spotting that landmine. By the way this driver is full of it :).

> From: Borislav Petkov <petkovbb@xxxxxxxxxxxxxx>
> Subject: [PATCH 1/4] ide-tape: remove tape->cache_stage
> 
> Prior to allocating a new pipeline stage, the code checked for the existence of
> a cached pipeline stage to use. Do away with and stick to normal pipeline
> stages only.
> 
> [bart: keep idetape_kmalloc_stage() for now]
> 
> Signed-off-by: Borislav Petkov <petkovbb@xxxxxxxxx>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> ---
>  drivers/ide/ide-tape.c |   13 +------------
>  1 file changed, 1 insertion(+), 12 deletions(-)
> 
> Index: b/drivers/ide/ide-tape.c
> ===================================================================
> --- a/drivers/ide/ide-tape.c
> +++ b/drivers/ide/ide-tape.c
> @@ -365,8 +365,6 @@ typedef struct ide_tape_obj {
>  	idetape_stage_t *next_stage;
>  	/* New requests will be added to the pipeline here */
>  	idetape_stage_t *last_stage;
> -	/* Optional free stage which we can use */
> -	idetape_stage_t *cache_stage;
>  	int pages_per_stage;
>  	/* Wasted space in each stage */
>  	int excess_bh_size;
> @@ -1686,16 +1684,10 @@ abort:
>  
>  static idetape_stage_t *idetape_kmalloc_stage(idetape_tape_t *tape)
>  {
> -	idetape_stage_t *cache_stage = tape->cache_stage;
> -
>  	debug_log(DBG_PROCS, "Enter %s\n", __func__);
>  
>  	if (tape->nr_stages >= tape->max_stages)
>  		return NULL;
> -	if (cache_stage != NULL) {
> -		tape->cache_stage = NULL;
> -		return cache_stage;
> -	}
>  	return __idetape_kmalloc_stage(tape, 0, 0);
>  }
>  
> @@ -3245,10 +3237,7 @@ static int idetape_chrdev_release(struct
>  		else
>  			idetape_wait_for_pipeline(drive);
>  	}
> -	if (tape->cache_stage != NULL) {
> -		__idetape_kfree_stage(tape->cache_stage);
> -		tape->cache_stage = NULL;
> -	}
> +
>  	if (minor < 128 && test_bit(IDETAPE_FLAG_MEDIUM_PRESENT, &tape->flags))
>  		(void) idetape_rewind_tape(drive);
>  	if (tape->chrdev_dir == IDETAPE_DIR_NONE) {

-- 
Regards/Gruß,
    Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux