From bu7cher@yandex.ru  Fri Oct 13 22:10:07 2006
Return-Path: <bu7cher@yandex.ru>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id E00E316A417
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 13 Oct 2006 22:10:07 +0000 (UTC)
	(envelope-from bu7cher@yandex.ru)
Received: from properlan.net (properlan.net [82.211.139.89])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 56E5A43D76
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 13 Oct 2006 22:10:05 +0000 (GMT)
	(envelope-from bu7cher@yandex.ru)
Received: from btr-nb.properlan.net ([10.0.12.49])
	by properlan.net with esmtp (Exim 4.50)
	id 1GYVDc-0006Sf-KQ
	for FreeBSD-gnats-submit@freebsd.org; Sat, 14 Oct 2006 02:09:28 +0400
Received: by btr-nb.properlan.net (Postfix, from userid 1001)
	id 96D1717049; Sat, 14 Oct 2006 02:09:42 +0400 (MSD)
Message-Id: <20061013220942.96D1717049@btr-nb.properlan.net>
Date: Sat, 14 Oct 2006 02:09:42 +0400 (MSD)
From: Andrey V. Elsukov <bu7cher@yandex.ru>
Reply-To: Andrey V. Elsukov <bu7cher@yandex.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [panic][ntfs] Mounting ntfs to the same mountpoint
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         104393
>Category:       kern
>Synopsis:       [ntfs] [panic] Mounting ntfs to the same mountpoint
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 13 22:10:19 GMT 2006
>Closed-Date:    Fri Sep 21 23:51:32 GMT 2007
>Last-Modified:  Sat Sep 22 00:00:27 GMT 2007
>Originator:     Andrey V. Elsukov
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD btr-nb.properlan.net 7.0-CURRENT FreeBSD 7.0-CURRENT #7: Fri Oct 13 23:20:33 MSD 2006 butcher@btr-nb.properlan.net:/usr/obj/usr/src/sys/BTR i386

I think RELENG_6 have this bug too.

>Description:

System panic after second mounting ntfs to the same mountpoint

>How-To-Repeat:

# mount_ntfs /dev/ad4s2 /mnt
# mount_ntfs /dev/ad4s2 /mnt

>Fix:

Currently I do not know.

	

--- ntfs_bt.txt begins here ---
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".

Unread portion of the kernel message buffer:
panic: lockmgr: locking against myself
KDB: enter: panic
exclusive sleep mutex Giant r = 1 (0xc073af88) locked @ /usr/src/sys/kern/vfs_lookup.c:659
Physical memory: 434 MB
Dumping 32 MB: 17 1

#0  doadump () at pcpu.h:166
166		__asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt full
#0  doadump () at pcpu.h:166
No locals.
#1  0xc044bbb7 in db_fncall (dummy1=-759912864, dummy2=0, dummy3=-1065712192, dummy4=0xd2b4a63c "\200z") at /usr/src/sys/ddb/db_command.c:481
	fn_addr = -1068320280
	args = {-1065790016, -1066440736, -759912948, -1066181280, -759912932, -1069238617, -1066181280, -1066440736, -759912904, -759912948}
	nargs = 0
	retval = 543513285
	t = 0
#2  0xc044b9c3 in db_command (last_cmdp=0xc07354e4, cmd_table=0x0) at /usr/src/sys/ddb/db_command.c:396
	cmd = (struct command *) 0xc06f67e0
	t = 0
	modif = "\200z\000\000\000\000g\212n`2HTy\000\000\000\000\000(]\r\000\000\000\205z\r\000\000\000\001\000\000\000\214ҧf\214f\000f [xx\000\000\000]spx\207¬\200D\004\035mDpx\207]svD]s\020Vs"
	addr = -759912864
	count = -1065712192
	have_addr = 0
	result = 0
#3  0xc044ba7e in db_command_loop () at /usr/src/sys/ddb/db_command.c:448
No locals.
#4  0xc044d631 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:221
	jb = {{_jb = {-759912724, -759912744, -759912672, 3, -1031309200, -1069230646, 39, 18, 0, 536870912, 0, 0}}}
	prev_jb = (void *) 0x0
	bkpt = 0
#5  0xc054779d in kdb_trap (type=3, code=0, tf=0x0) at /usr/src/sys/kern/subr_kdb.c:502
	handled = 0
#6  0xc06873c4 in trap (frame=
      {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 1, tf_esi = -1066597519, tf_ebp = -759912444, tf_isp = -759912464, tf_ebx = -759912400, tf_edx = 0, tf_ecx = -1052684288, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip = -1068206813, tf_cs = 32, tf_eflags = 524946, tf_esp = -759912412, tf_ss = -1068318629}) at /usr/src/sys/i386/i386/trap.c:620
	td = (struct thread *) 0xc2877870
	p = (struct proc *) 0xc28768d0
	i = 0
	ucode = 0
	type = 3
	code = 0
	addr = 0
	eva = 0
	ksi = {ksi_link = {tqe_next = 0xc06d1bd6, tqe_prev = 0xd2b4a784}, ksi_info = {si_signo = -1068166311, si_errno = 524870, si_code = 524870, si_pid = -1066345980, 
    si_uid = 3264487548, si_status = 2204, si_addr = 0xc06d8ff7, si_value = {sival_int = -759912536, sival_ptr = 0xd2b4a7a8}, _reason = {_fault = {_trapno = -1068348969}, 
      _timer = {_timerid = -1068348969, _overrun = -1030479748}, _mesgq = {_mqd = -1068348969}, _poll = {_band = -1068348969}, __spare__ = {__spare1__ = -1068348969, 
        __spare2__ = {-1030479748, 8, -1066561545, 2204, -1030479872, -1030479872, -1031309200}}}}, ksi_flags = -759912508, ksi_sigq = 0xc0581daa}
#7  0xc0678d9a in calltrap () at /usr/src/sys/i386/i386/exception.s:138
No locals.
#8  0xc0547523 in kdb_enter (msg=0x12 <Address 0x12 out of bounds>) at cpufunc.h:60
No locals.
#9  0xc052c05b in panic (fmt=0xc06d0371 "lockmgr: locking against myself") at /usr/src/sys/kern/kern_shutdown.c:549
	td = (struct thread *) 0xc2877870
	bootopt = 256
	newpanic = 1
	ap = 0xd2b4a830 "px\207"
	buf = "lockmgr: locking against myself", '\0' <repeats 224 times>
#10 0xc0521a0e in lockmgr (lkp=0xc28e615c, flags=8194, interlkp=0xc28e6180, td=0xc2877870) at /usr/src/sys/kern/kern_lock.c:326
	error = 0
	thr = (struct thread *) 0xc2877870
	extflags = 128
	lockflags = 18
#11 0xc0579742 in vop_stdlock (ap=0x0) at /usr/src/sys/kern/vfs_default.c:263
	vp = (struct vnode *) 0xc1415000
#12 0xc06908cf in VOP_LOCK_APV (vop=0xc0715f80, a=0xd2b4a890) at vnode_if.c:1618
	rc = -1066311808
#13 0xc058ca20 in vn_lock (vp=0xc28e6104, flags=8194, td=0xc2877870) at vnode_if.h:844
	error = 18
#14 0xc05818aa in vget (vp=0xc28e6104, flags=2, td=0xc2877870) at /usr/src/sys/kern/vfs_subr.c:1984
	oweinact = 0
	oldflags = 2
	error = -1031373312
#15 0xc04efed7 in ntfs_vgetex (mp=0x12, ino=5, attrtype=128, attrname=0x0, lkflags=2, flags=0, td=0xc2877870, vpp=0xd2b4a958) at /usr/src/sys/fs/ntfs/ntfs_vfsops.c:712
	error = 0
	ntmp = (struct ntfsmount *) 0xc2867e00
	ip = (struct ntnode *) 0xc2889780
	fp = (struct fnode *) 0xc2889580
	vp = (struct vnode *) 0x666
	f_type = VNON
#16 0xc04effdc in ntfs_vget (mp=0xc2945510, ino=5, lkflags=2, vpp=0xd2b4a958) at pcpu.h:163
No locals.
#17 0xc04efacd in ntfs_root (mp=0x12, flags=2, vpp=0x12, td=0xc2877870) at /usr/src/sys/fs/ntfs/ntfs_vfsops.c:528
	nvp = (struct vnode *) 0x0
	error = -1030856320
#18 0xc057d75b in vfs_domount (td=0xc2877870, fstype=0xc28e6180 "ImIm", fspath=0xc2945510 "(s", fsflags=1, fsdata=0xc285cb60) at /usr/src/sys/kern/vfs_mount.c:1008
	newdp = (struct vnode *) 0xc073f9b4
	vp = (struct vnode *) 0xc28e6104
	mp = (struct mount *) 0xc2945510
	vfsp = (struct vfsconf *) 0xc07053e0
	export = {ex_flags = 0, ex_root = 16, ex_anon = {cr_version = 3242546816, cr_uid = 0, cr_ngroups = 16, cr_groups = {3242546816, 7, 3535055580, 3228404154, 
      3535055576, 3226798620, 3228404154, 3263658260, 3228404154, 3535055596, 3226798620, 3228404154, 3228807048, 687, 3535055624, 3226800253}, _cr_unused1 = 0xc07859a8}, 
  ex_addr = 0xc073af88, ex_addrlen = 104 'h', ex_mask = 0xc073af88, ex_masklen = 175 '', ex_indexfile = 0xc06d89ba "/usr/src/sys/kern/vfs_mount.c"}
	error = 0
	flag = 0
	kern_flag = 0
	va = {va_type = VDIR, va_mode = 493, va_nlink = 1, va_uid = 0, va_gid = 0, va_fsid = 78, va_fileid = 5, va_size = 0, va_blocksize = 4096, va_atime = {
    tv_sec = 1240428288, tv_nsec = 0}, va_mtime = {tv_sec = 1240428288, tv_nsec = 0}, va_ctime = {tv_sec = 1240428288, tv_nsec = 0}, va_birthtime = {tv_sec = -759911624, 
    tv_nsec = -1068196097}, va_gen = 0, va_flags = 34816, va_rdev = 0, va_bytes = 0, va_filerev = 0, va_vaflags = 0, va_spare = 0}
	nd = {ni_dirp = 0xc285cb20 "/mnt", ni_segflg = UIO_SYSSPACE, ni_startdir = 0x0, ni_rootdir = 0xc2883c30, ni_topdir = 0x0, ni_vp = 0xc28e6104, ni_dvp = 0xc2883c30, 
  ni_pathlen = 1, ni_next = 0xc2885404 "", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 0, cn_flags = 67158084, cn_thread = 0xc2877870, cn_cred = 0xc25d1d00, cn_lkflags = 2, 
    cn_pnbuf = 0xc2885400 "/mnt", cn_nameptr = 0xc2885401 "mnt", cn_namelen = 3, cn_consume = 0}}
#19 0xc057cdf1 in vfs_donmount (td=0xc2877870, fsflags=1, fsoptions=0xd2b4ab8c) at /usr/src/sys/kern/vfs_mount.c:688
	optlist = (struct vfsoptlist *) 0xc285cb60
	opt = (struct vfsopt *) 0x0
	noro_opt = (struct vfsopt *) 0x0
	fstype = 0xc285cb40 "ntfs"
	fspath = 0xc285cb20 "/mnt"
	errmsg = 0x0
	error = 0
	fstypelen = 5
	fspathlen = 5
	errmsg_len = 0
	errmsg_pos = -1
	has_rw = 0
	has_noro = 0
#20 0xc057f1fc in kernel_mount (ma=0xc285cbe0, flags=1) at pcpu.h:163
	auio = {uio_iov = 0xc2867900, uio_iovcnt = 28, uio_offset = -4429910491980845820, uio_resid = -759911336, uio_segflg = UIO_SYSSPACE, uio_rw = 3263548384, 
  uio_td = 0xc06cc1da}
	error = 0
#21 0xc04eefcd in ntfs_cmount (ma=0xc285cbe0, data=0xbfbfecb0, flags=1, td=0xc2877870) at /usr/src/sys/fs/ntfs/ntfs_vfsops.c:141
	error = 18
	args = {fspec = 0xbfbfee8d <Address 0xbfbfee8d out of bounds>, export = {ex_flags = 128, ex_root = 65534, ex_anon = {cr_version = 0, cr_uid = 0, cr_ngroups = 0, 
      cr_groups = {0 <repeats 16 times>}, _cr_unused1 = 0x0}, ex_addr = 0x0, ex_addrlen = 0 '\0', ex_mask = 0x0, ex_masklen = 0 '\0', ex_indexfile = 0x0}, uid = 0, gid = 0, 
  mode = 493, flag = 4, cs_ntfs = 0x8208160 <Address 0x8208160 out of bounds>, cs_local = 0x8208140 <Address 0x8208140 out of bounds>}
#22 0xc057cfe2 in mount (td=0xc2877870, uap=0xd2b4ad04) at /usr/src/sys/kern/vfs_mount.c:769
	fstype = 0xc285cbf0 "ntfs"
	vfsp = (struct vfsconf *) 0xc07053e0
	ma = (struct mntarg *) 0xc285cbe0
	error = 0
#23 0xc0687b8a in syscall (frame=
      {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = -1077942192, tf_ebp = -1077940904, tf_isp = -759911068, tf_ebx = -1077940595, tf_edx = 0, tf_ecx = 0, tf_eax = 21, tf_trapno = 12, tf_err = 2, tf_eip = 671893187, tf_cs = 51, tf_eflags = 518, tf_esp = -1077942260, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:1006
	params = 0xbfbfe810 <Address 0xbfbfe810 out of bounds>
	callp = (struct sysent *) 0xc0707b58
	td = (struct thread *) 0xc2877870
	p = (struct proc *) 0xc28768d0
	orig_tf_eflags = 518
	error = 0
	narg = 4
	args = {134518076, -1077942192, 1, -1077941072, 0, 0, 0, 0}
	code = 21
	ksi = {ksi_link = {tqe_next = 0xc068747f, tqe_prev = 0xc2877870}, ksi_info = {si_signo = -759911112, si_errno = -1077945636, si_code = 671756716, si_pid = 6, 
    si_uid = 0, si_status = 0, si_addr = 0xc06cf890, si_value = {sival_int = -759911172, sival_ptr = 0xd2b4acfc}, _reason = {_fault = {_trapno = -1068348969}, _timer = {
        _timerid = -1068348969, _overrun = -1032146676}, _mesgq = {_mqd = -1068348969}, _poll = {_band = -1068348969}, __spare__ = {__spare1__ = -1068348969, __spare2__ = {
          -1032146676, 8, -1066600304, 831, 0, -1032146688, -1032146676}}}}, ksi_flags = -759911132, ksi_sigq = 0xc05190a5}
#24 0xc0678def in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:191
No locals.
#25 0x00000033 in ?? ()
No symbol table info available.
(kgdb) 
--- ntfs_bt.txt ends here ---


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: rodrigc 
State-Changed-When: Fri Sep 21 23:51:12 UTC 2007 
State-Changed-Why:  
Duplicate of PR 89966 

http://www.freebsd.org/cgi/query-pr.cgi?pr=104393 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/104393: commit references a PR
Date: Fri, 21 Sep 2007 23:50:25 +0000 (UTC)

 rodrigc     2007-09-21 23:50:15 UTC
 
   FreeBSD src repository
 
   Modified files:
     sys/fs/ntfs          ntfs_vfsops.c 
   Log:
   Disable multiple ntfs mounts to the same mountpoint.
   Eliminates panics due to locking issues.
   Idea taken from src/sys/gnu/fs/xfs/FreeBSD/xfs_super.c.
   
   PR:     89966, 92000, 104393
   Reported by:    H. Matsuo <hiroshi50000 yahoo co jp>,
                   Chris <m2chrischou gmail.com>,
                   Andrey V. Elsukov <bu7cher yandex ru>,
                   Jan Henrik Sylvester <me janh de>
   Approved by:    re (kensmith)
   
   Revision  Changes    Path
   1.88      +15 -1     src/sys/fs/ntfs/ntfs_vfsops.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
