DragonFly bugs List (threaded) for 2009-03
DragonFly BSD
DragonFly bugs List (threaded) for 2009-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[issue1303] Make vnconfig -l handle gracefully inaccessible special files


From: "Stathis Kamperis \(via DragonFly issue tracker\)" <sinknull@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 01 Mar 2009 07:27:07 +0000

New submission from Stathis Kamperis <ekamperi@gmail.com>:

Greetings everyone.

The problem with vnconfig -l is that as soon as it encounters an error, it stops
listing the rest of the vn devices. On top of that, if the error is due to a
inaccessible special file, a broken message is printed.

How to reproduce it.
[beket@sadness ~] dd if=/dev/zero of=lala.img bs=10M count=1
[beket@sadness ~] dd if=/dev/zero of=foo.img bs=10M count=1
[beket@sadness ~] sudo vnconfig vn0 lala.img
[beket@sadness ~] sudo vnconfig vn3 foo.img
[beket@sadness ~] sudo vnconfig -l
vn0: covering /home/beket/lala.img on #B116:0x40006, inode 43367
vn1: not in use
vn2: not in use
vn3: covering /home/beket/foo.img on #B116:0x40006, inode 43380
vn4: not in use
vn5: not in use
vn6: not in use
vn7: not in use
vn8: not in use
vn9: not in use
vn10: not in use
vn11: not in use
[beket@sadness ~] rm lala.img
[beket@sadness ~] sudo vnconfig -l
vnconfig: ioctl: vn0: Invalid argument
[beket@sadness ~]

As mentioned before we are bitten twice: 1) we can't display the rest of the vn
entries (happens with every possible error) and 2) we get a broken message (in
this particular case).

Here is how vnconfig -l behaves with my patch:
[beket@sadness ~] sudo vnconfig -l
vn0: ioctl: can't access special filename
vn1: not in use
vn2: not in use
vn3: covering /home/beket/foo.img on #B116:0x40006, inode 43380
vn4: not in use
vn5: not in use
vn6: not in use
vn7: not in use
vn8: not in use
vn9: not in use
vn10: not in use
vn11: not in use
[beket@sadness ~] 

Patch in:
http://stathisk.ath.cx/patches/dragonflybsd/0001-vnconfig-l-handle-gracefully-missing-special-file.patch

Please review.
Note: currently, vnconfig(8) is the only consumer of VNIOCGET/vnget(). Thus,
changing the return error of vnget() won't break anything (hoperfully:))

Best regards,
Stathis Kamperis

----------
assignedto: Beket
messages: 6266
nosy: Beket
priority: bug
status: unread
title: Make vnconfig -l handle gracefully inaccessible special files

_____________________________________________________
DragonFly issue tracker <bugs@lists.dragonflybsd.org>
<http://bugs.dragonflybsd.org/issue1303>
_____________________________________________________



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]