On Dec 30,  7:11pm, "Michael van Elst" wrote:
}
} This is a multi-part message in MIME format.
} 
} --_----------=_141996666543200
} Content-Disposition: inline
} Content-Transfer-Encoding: 8bit
} Content-Type: text/plain; charset="US-ASCII"
} 
} Module Name:  src
} Committed By: mlelstv
} Date:         Tue Dec 30 19:11:05 UTC 2014
} 
} Modified Files:
}       src/sys/dev: ccd.c
} 
} Log Message:
} Fix locking error.
} Clear EPASSTHROUGH return value from disk_ioctl.
} Add missing wedge ioctls.

     Thanks.  It looks like you need to do this with cgd(4) as
well.  I pulled the wedge stuff from there.  Looks like I should
have chosen a better driver to emulate.  BTW, given that the wedge
stuff is pretty basic and doesn't have much in the way of device
specific code, why isn't it handled in a common function (i.e.
disk_ioctl())?

} To generate a diff of this commit:
} cvs rdiff -u -r1.156 -r1.157 src/sys/dev/ccd.c
} 
} Please note that diffs are not public domain; they are subject to the
} copyright notices on the relevant files.
} 
} 
} --_----------=_141996666543200
} Content-Disposition: inline
} Content-Length: 3804
} Content-Transfer-Encoding: binary
} Content-Type: text/x-diff; charset=us-ascii
} 
} Modified files:
} 
} Index: src/sys/dev/ccd.c
} diff -u src/sys/dev/ccd.c:1.156 src/sys/dev/ccd.c:1.157
} --- src/sys/dev/ccd.c:1.156   Tue Dec 30 12:42:16 2014
} +++ src/sys/dev/ccd.c Tue Dec 30 19:11:05 2014
} @@ -1288,6 +1300,9 @@ ccdioctl(dev_t dev, u_long cmd, void *da
}                       goto out;
}               }
}  
} +             /* Delete all of our wedges. */
} +             dkwedge_delall(&cs->sc_dkdev);
} +
}               /* Stop new I/O, wait for in-flight I/O to complete. */
}               mutex_enter(cs->sc_iolock);
}               cs->sc_flags &= ~(CCDF_INITED|CCDF_VLABEL);
} @@ -1337,7 +1352,6 @@ ccdioctl(dev_t dev, u_long cmd, void *da
}               aprint_normal("%s: detached\n", cs->sc_xname);
}  
}               /* Detach the disk. */
} -             dkwedge_delall(&cs->sc_dkdev);
}               disk_detach(&cs->sc_dkdev);
}               bufq_free(cs->sc_bufq);
}               ccdput(cs);

     Uh, why delete the wedges prior to I/O completion?

}-- End of excerpt from "Michael van Elst"

Reply via email to