Fix mmap() on msdosfs. In the words of the submitter:
|In the process of evaluating the getpages/putpages issues I discovered |that mmap on MSDOSFS does not work. This is because I blindly merged |NetBSD changes in msdosfs_bmap and msdosfs_strategy. Apparently, their |blocksize is always DEV_BSIZE (even in files), while in FreeBSD |blocksize in files is v_mount->mnt_stat.f_iosize (i.e. clustersize in |MSDOSFS case). The patch is below. Submitted by: Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
This commit is contained in:
parent
2c122f3b6a
commit
ea0665cd2b
@ -1,4 +1,4 @@
|
||||
/* $Id: msdosfs_vnops.c,v 1.61 1998/02/24 14:13:16 ache Exp $ */
|
||||
/* $Id: msdosfs_vnops.c,v 1.62 1998/02/26 06:45:46 msmith Exp $ */
|
||||
/* $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $ */
|
||||
|
||||
/*-
|
||||
@ -1834,7 +1834,7 @@ msdosfs_bmap(ap)
|
||||
if (ap->a_runb) {
|
||||
*ap->a_runb = 0;
|
||||
}
|
||||
return (pcbmap(dep, de_bn2cn(pmp, ap->a_bn), ap->a_bnp, 0, 0));
|
||||
return (pcbmap(dep, ap->a_bn, ap->a_bnp, 0, 0));
|
||||
}
|
||||
|
||||
static int
|
||||
@ -1857,8 +1857,7 @@ msdosfs_strategy(ap)
|
||||
* don't allow files with holes, so we shouldn't ever see this.
|
||||
*/
|
||||
if (bp->b_blkno == bp->b_lblkno) {
|
||||
error = pcbmap(dep, de_bn2cn(dep->de_pmp, bp->b_lblkno),
|
||||
&bp->b_blkno, 0, 0);
|
||||
error = pcbmap(dep, bp->b_lblkno, &bp->b_blkno, 0, 0);
|
||||
if (error) {
|
||||
bp->b_error = error;
|
||||
bp->b_flags |= B_ERROR;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: msdosfs_vnops.c,v 1.61 1998/02/24 14:13:16 ache Exp $ */
|
||||
/* $Id: msdosfs_vnops.c,v 1.62 1998/02/26 06:45:46 msmith Exp $ */
|
||||
/* $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $ */
|
||||
|
||||
/*-
|
||||
@ -1834,7 +1834,7 @@ msdosfs_bmap(ap)
|
||||
if (ap->a_runb) {
|
||||
*ap->a_runb = 0;
|
||||
}
|
||||
return (pcbmap(dep, de_bn2cn(pmp, ap->a_bn), ap->a_bnp, 0, 0));
|
||||
return (pcbmap(dep, ap->a_bn, ap->a_bnp, 0, 0));
|
||||
}
|
||||
|
||||
static int
|
||||
@ -1857,8 +1857,7 @@ msdosfs_strategy(ap)
|
||||
* don't allow files with holes, so we shouldn't ever see this.
|
||||
*/
|
||||
if (bp->b_blkno == bp->b_lblkno) {
|
||||
error = pcbmap(dep, de_bn2cn(dep->de_pmp, bp->b_lblkno),
|
||||
&bp->b_blkno, 0, 0);
|
||||
error = pcbmap(dep, bp->b_lblkno, &bp->b_blkno, 0, 0);
|
||||
if (error) {
|
||||
bp->b_error = error;
|
||||
bp->b_flags |= B_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user