Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Dec 2005 17:48:21 -0500
From:      Matthew Jacob <lydianconcepts@gmail.com>
To:        Kern Sibbald <kern@sibbald.com>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: Tape drive handling on FreeBSD
Message-ID:  <7579f7fb0512181448x1dc4b3f4m9d5112cc6bc9fc1a@mail.gmail.com>
In-Reply-To: <200512151122.34949.kern@sibbald.com>
References:  <200512151122.34949.kern@sibbald.com>

next in thread | previous in thread | raw e-mail | index | archive | help
The first paragraph of mtio(4) describes the usage of a control device.

On 12/15/05, Kern Sibbald <kern@sibbald.com> wrote:
>
> Hello,
>
> We correponded a couple of years ago when Bacula was experiencing data
> loss
> at the end of tapes -- it turned out to be a pthreads bug that suppressed
> the early end of tape warning.
>
> I have a new problem, and if you cannot help, please
> direct me in the right direction.
>
> Basically Bacula (network backup program) needs to open() the tape drive
> so
> that it can read/write it.  On both Linux and Solaris, it is possible to
> open
> the drive with O_NONBLOCK and get a descriptor that can be used for
> ioctl()
> calls and providing there is a tape in the drive, it can be used for
> read()
> and write().
>
> On FreeBSD, if there is no tape in the drive, the OS always immediately
> returns errno=3DENXIO "Device not configured".  This means that on FreeBS=
D,
> if
> there is no tape in the drive, that drive is totally unusable by
> Bacula.  Now
> it seems to me that there are two solutions:
>
> 1. Modify Bacula and system dependent code that opens the control device
> to
> see if a tape drive is really there or not, and then rewrite the tape
> driver
> code to deal with the fact that if you cannot open a device, it may reall=
y
> be
> there, and you should continue trying to open it between asking the user
> to
> mount it.  This is clearly possible.
>
> 2. Consider implementing something in FreeBSD as exists on at least Linux
> and
> Solaris -- i.e. a means to open the drive and get a valid file descriptor=
.
> If you read/write/rewind/... a drive opened and there is no tape, it
> should
> either return EIO or better ENOMEDIUM.
>
> Comments?
>
> --
> Best regards,
>
> Kern
>
> (">
> /\
> V_V
>
> -------------------------------------------------------
>
> --
> Best regards,
>
> Kern
>
> (">
> /\
> V_V
> _______________________________________________
> freebsd-scsi@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-scsi
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7579f7fb0512181448x1dc4b3f4m9d5112cc6bc9fc1a>