svn commit: r261867 - head/sys/vm

Andriy Gapon avg at FreeBSD.org
Fri Feb 14 07:28:29 UTC 2014


on 14/02/2014 05:34 Attilio Rao said the following:
> Author: attilio
> Date: Fri Feb 14 03:34:12 2014
> New Revision: 261867
> URL: http://svnweb.freebsd.org/changeset/base/261867
> 
> Log:
>   Fix-up r254141: in the process of making a failing vm_page_rename()
>   a call of pager_swap_freespace() was moved around, now leading to freeing
>   the incorrect page because of the pindex changes after vm_page_rename().
>   
>   Get back to use the correct pindex when destroying the swap space.
>   
>   Sponsored by:	EMC / Isilon storage division
>   Reported by:	avg
>   Tested by:	pho
>   MFC after:	7 days

Thank you!
I also have not seen any of my previous problems since I started using the patch.

> Modified:
>   head/sys/vm/vm_object.c
> 
> Modified: head/sys/vm/vm_object.c
> ==============================================================================
> --- head/sys/vm/vm_object.c	Fri Feb 14 03:30:55 2014	(r261866)
> +++ head/sys/vm/vm_object.c	Fri Feb 14 03:34:12 2014	(r261867)
> @@ -1627,9 +1627,11 @@ vm_object_backing_scan(vm_object_t objec
>  				p = TAILQ_FIRST(&backing_object->memq);
>  				continue;
>  			}
> +
> +			/* Use the old pindex to free the right page. */
>  			if (backing_object->type == OBJT_SWAP)
> -				swap_pager_freespace(backing_object, p->pindex,
> -				    1);
> +				swap_pager_freespace(backing_object,
> +				    new_pindex + backing_offset_index, 1);
>  
>  #if VM_NRESERVLEVEL > 0
>  			/*
> 


-- 
Andriy Gapon


More information about the svn-src-all mailing list