UFS: unaligned read from GELI with 8k sectorsize

Anton Yuzhaninov citrin at citrin.ru
Mon Oct 3 17:14:36 UTC 2016


On 2016-10-02 15:13, Konstantin Belousov wrote:
> I see.  I was able to reproduce it with gnop -S 8k over swap-backed md.
> The following patch worked for me.
>
> diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
> index 2af5383..c9cd4dc 100644
> --- a/sys/ufs/ffs/ffs_vnops.c
> +++ b/sys/ufs/ffs/ffs_vnops.c
> @@ -118,14 +118,14 @@ static vop_listextattr_t	ffs_listextattr;
>  static vop_openextattr_t	ffs_openextattr;
>  static vop_setextattr_t	ffs_setextattr;
>  static vop_vptofh_t	ffs_vptofh;
> -
> +static vop_getpages_t	ffs_getpages;
>
>  /* Global vfs data structures for ufs. */
>  struct vop_vector ffs_vnodeops1 = {
>  	.vop_default =		&ufs_vnodeops,
>  	.vop_fsync =		ffs_fsync,
>  	.vop_fdatasync =	ffs_fdatasync,
> -	.vop_getpages =		vnode_pager_local_getpages,
> +	.vop_getpages =		ffs_getpages,

With this patch I can exec various binaries from 8k geli when I boot 
from a USB stick, but can't boot with root on this geli. Boot process 
stops after init exec.

DDB bt for init:
https://imgur.com/a/FXuzw
ps in DDB shows init in running state (CPU2).


More information about the freebsd-fs mailing list