* Note: unmount takes a path to the vnode mounted on as argument,
* not special file (as before).
*/
* Note: unmount takes a path to the vnode mounted on as argument,
* not special file (as before).
*/
* Check permissions, allocate an open file structure,
* and call the device open routine if any.
*/
* Check permissions, allocate an open file structure,
* and call the device open routine if any.
*/
if (error = vn_open(ndp, p, fmode, cmode)) {
ffree(fp);
if (error == ENODEV && /* XXX from fdopen */
if (error = vn_open(ndp, p, fmode, cmode)) {
ffree(fp);
if (error == ENODEV && /* XXX from fdopen */
(error = dupfdopen(fdp, indx, p->p_dupfd, fmode)) == 0) {
*retval = indx;
return (0);
(error = dupfdopen(fdp, indx, p->p_dupfd, fmode)) == 0) {
*retval = indx;
return (0);
* Source and destination must either both be directories, or both
* not be directories. If target is a directory, it must be empty.
*/
* Source and destination must either both be directories, or both
* not be directories. If target is a directory, it must be empty.
*/