Page MenuHomeFreeBSD

D34836.1792575454.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D34836.1792575454.diff

Index: sys/ufs/ffs/ffs_vfsops.c
===================================================================
--- sys/ufs/ffs/ffs_vfsops.c
+++ sys/ufs/ffs/ffs_vfsops.c
@@ -801,6 +801,7 @@
sblockloc = fs->fs_sblockloc;
bcopy(newfs, fs, (u_int)fs->fs_sbsize);
brelse(bp);
+ ump->um_bsize = fs->fs_bsize;
ump->um_maxsymlinklen = fs->fs_maxsymlinklen;
ffs_oldfscompat_read(fs, VFSTOUFS(mp), sblockloc);
UFS_LOCK(ump);
@@ -1064,6 +1065,7 @@
vfs_rel(nmp);
vfs_getnewfsid(mp);
}
+ ump->um_bsize = fs->fs_bsize;
ump->um_maxsymlinklen = fs->fs_maxsymlinklen;
MNT_ILOCK(mp);
mp->mnt_flag |= MNT_LOCAL;
Index: sys/ufs/ufs/ufs_vnops.c
===================================================================
--- sys/ufs/ufs/ufs_vnops.c
+++ sys/ufs/ufs/ufs_vnops.c
@@ -285,7 +285,8 @@
ip = VTOI(vp);
vnode_create_vobject(vp, DIP(ip, i_size), ap->a_td);
- if (vp->v_type == VREG && (vn_irflag_read(vp) & VIRF_PGREAD) == 0) {
+ if (vp->v_type == VREG && (vn_irflag_read(vp) & VIRF_PGREAD) == 0 &&
+ ip->i_ump->um_bsize >= PAGE_SIZE) {
vn_irflag_set_cond(vp, VIRF_PGREAD);
}
Index: sys/ufs/ufs/ufsmount.h
===================================================================
--- sys/ufs/ufs/ufsmount.h
+++ sys/ufs/ufs/ufsmount.h
@@ -96,6 +96,7 @@
u_long um_nindir; /* (c) indirect ptrs per blk */
u_long um_bptrtodb; /* (c) indir disk block ptr */
u_long um_seqinc; /* (c) inc between seq blocks */
+ uint64_t um_bsize; /* (c) fs block size */
uint64_t um_maxsymlinklen; /* (c) max size of short
symlink */
struct mtx um_lock; /* (c) Protects ufsmount & fs */

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 21, 9:37 AM (19 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30585423
Default Alt Text
D34836.1792575454.diff (1 KB)

Event Timeline