David Gwynne wrote:
> On Thu, Jan 07, 2016 at 05:56:17PM +0100, Martin Pieuchot wrote:
> > I spent some time trying to implement clustering writes for MSDOSFS
> > before I could figure out that our cluster_write() functions is not
> > doing anything but delaying the calls do bawrite().  Awesome!
> > 
> > So I think it's time for this code to die.  The buttons can also die
> > as we always enable read clustering via bread_cluster().
> > 
> > Next I plan to remove the "struct cluster_info", kern/vfs_cluster.c
> > and implement a bwrite_cluster() similar to our bread_cluster().
> 
> im running this and the world keeps spinning. i havent noticed a
> regression, but i also havent looked for one or an improvement.
> 
> i like the simplification. ok by me.

Hello,

Same here, been running it for a while and nothing blew up.


> 
> > 
> > Index: ufs/ffs/ffs_extern.h
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ffs/ffs_extern.h,v
> > retrieving revision 1.40
> > diff -u -p -r1.40 ffs_extern.h
> > --- ufs/ffs/ffs_extern.h    25 Jan 2014 23:31:12 -0000      1.40
> > +++ ufs/ffs/ffs_extern.h    7 Jan 2016 16:40:46 -0000
> > @@ -55,8 +55,8 @@
> >  
> >  #define FFS_NAMES { \
> >     { 0, 0 }, \
> > -   { "doclusterread", CTLTYPE_INT }, \
> > -   { "doclusterwrite", CTLTYPE_INT }, \
> > +   { 0, 0 }, \
> > +   { 0, 0 }, \
> >     { "doreallocblks", CTLTYPE_INT }, \
> >     { "doasyncfree", CTLTYPE_INT }, \
> >     { "max_softdeps", CTLTYPE_INT }, \
> > Index: ufs/ffs/ffs_vfsops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ffs/ffs_vfsops.c,v
> > retrieving revision 1.149
> > diff -u -p -r1.149 ffs_vfsops.c
> > --- ufs/ffs/ffs_vfsops.c    14 Mar 2015 03:38:52 -0000      1.149
> > +++ ufs/ffs/ffs_vfsops.c    7 Jan 2016 16:39:57 -0000
> > @@ -1496,7 +1496,7 @@ int
> >  ffs_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void 
> > *newp,
> >      size_t newlen, struct proc *p)
> >  {
> > -   extern int doclusterread, doclusterwrite, doreallocblks, doasyncfree;
> > +   extern int doreallocblks, doasyncfree;
> >  #ifdef FFS_SOFTUPDATES
> >     extern int max_softdeps, tickdelay, stat_worklist_push;
> >     extern int stat_blk_limit_push, stat_ino_limit_push, stat_blk_limit_hit;
> > @@ -1510,11 +1510,8 @@ ffs_sysctl(int *name, u_int namelen, voi
> >  
> >     switch (name[0]) {
> >     case FFS_CLUSTERREAD:
> > -           return (sysctl_int(oldp, oldlenp, newp, newlen,
> > -               &doclusterread));
> >     case FFS_CLUSTERWRITE:
> > -           return (sysctl_int(oldp, oldlenp, newp, newlen,
> > -               &doclusterwrite));
> > +           return (EOPNOTSUPP);
> >     case FFS_REALLOCBLKS:
> >             return (sysctl_int(oldp, oldlenp, newp, newlen,
> >                 &doreallocblks));
> > Index: ufs/ffs/ffs_vnops.c
> > ===================================================================
> > RCS file: /cvs/src/sys/ufs/ffs/ffs_vnops.c,v
> > retrieving revision 1.80
> > diff -u -p -r1.80 ffs_vnops.c
> > --- ufs/ffs/ffs_vnops.c     14 Mar 2015 03:38:52 -0000      1.80
> > +++ ufs/ffs/ffs_vnops.c     7 Jan 2016 16:38:17 -0000
> > @@ -180,12 +180,6 @@ struct vops ffs_fifovops = {
> >  #endif /* FIFO */
> >  
> >  /*
> > - * Enabling cluster read/write operations.
> > - */
> > -int doclusterread = 1;
> > -int doclusterwrite = 1;
> > -
> > -/*
> >   * Vnode op for reading.
> >   */
> >  int
> > @@ -381,10 +375,7 @@ ffs_write(void *v)
> >             if (ioflag & IO_SYNC)
> >                     (void)bwrite(bp);
> >             else if (xfersize + blkoffset == fs->fs_bsize) {
> > -                   if (doclusterwrite)
> > -                           cluster_write(bp, &ip->i_ci, DIP(ip, size));
> > -                   else
> > -                           bawrite(bp);
> > +                   bawrite(bp);
> >             } else
> >                     bdwrite(bp);
> >  
> > 
> 

Reply via email to