I don't see any reason why you can't make that optimization at that point.
Nothing is going to come in and suddenly invalidate the inode between those
two lines.
I suspect it was an example of cut/paste-it is from some other part of the
kernel.
-----Original Message-----
From: TUHS [mailto:tuhs-bounces@minnie.tuhs.org] On Behalf Of Noel Chiappa
Sent: Thursday, January 25, 2018 1:43 PM
To: tuhs(a)minnie.tuhs.org
Cc: jnc(a)mercury.lcs.mit.edu
Subject: [TUHS] V6 UNIX main() oddness
So, while bringing up V6 on a hardware PDP-11/23 with an RK11 emulator using
an SD card for storage which Dave Bridgham and I are doing, I found this
piece of code in main() on V6 Unix:
rootdir = iget(rootdev, ROOTINO);
rootdir->i_flag =& ~ILOCK;
u.u_cdir = iget(rootdev, ROOTINO);
u.u_cdir->i_flag =& ~ILOCK;
I don't get why two separate calls to iget(), with the same arguments; why
not replace the second pair of lines with:
u.u_cdir = rootdir;
rootdir->i_count++;
What am I missing?
Noel