Current-Users archive

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

Re: utimensat



On Fri, Oct 26, 2012 at 06:30:17AM +0200, Emmanuel Dreyfus wrote:
 > Right, I fixed a bad check on flags. Here is it:
 > http://ftp.espci.fr/shadow/manu/openat-2.patch
 > 
 > [...]
 > panic: kernel diagnostic assertion "(vp->v_iflag & VI_MARKER) == 0"

ok, I see a large part of the problem:

+  file_t *dfp;
+  struct vnode *dvp;
 ...
+  if (fdat != AT_FDCWD) {
+       /* fd_getvnode() will use the descriptor for us */
+       if ((error = fd_getvnode(fdat, &dfp)) != 0)
+               return (error);
+
+       dvp = (struct vnode *)dfp;
+  }
 ...
+  if (dvp != NULL)
+       NDAT(&nd, dvp);

There is no possible way that cast can do anything but cause demons to
fly out of your nose.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index