multimedia/vlc causes a panic if media files are on msdosfs

Kostik Belousov kostikbel at gmail.com
Fri Nov 20 11:01:32 UTC 2009


On Thu, Nov 19, 2009 at 02:30:33PM -0800, Doug Barton wrote:
> Please see http://www.freebsd.org/cgi/query-pr.cgi?pr=140648 for more
> information, including a trace.
> 
> There is also some evidence that the same problem is triggered by
> accessing files on an NTFS partition. The VLC folks have suggested
> that the problem may be related to threading.

This is because msdosfs and ntfs are not mpsafe, and it seems that
VLC using recently added F_RDAHEAD/F_READAHEAD fcntls.

Please try this.

diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 434f54a..676de65 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -718,14 +718,15 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
 			do {
 				new = old = fp->f_flag;
 				new |= FRDAHEAD;
-			} while (atomic_cmpset_rel_int(&fp->f_flag, old, new) == 0);
+			} while (!atomic_cmpset_rel_int(&fp->f_flag, old, new));
 readahead_vnlock_fail:
 			VFS_UNLOCK_GIANT(vfslocked);
+			vfslocked = 0;
 		} else {
 			do {
 				new = old = fp->f_flag;
 				new &= ~FRDAHEAD;
-			} while (atomic_cmpset_rel_int(&fp->f_flag, old, new) == 0);
+			} while (!atomic_cmpset_rel_int(&fp->f_flag, old, new));
 		}
 		fdrop(fp, td);
 		break;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20091120/a1677d65/attachment.pgp


More information about the freebsd-current mailing list