Don't forget to initialize the inode lock. This bug caused
surprisingly few problems. Most fields were initialized to the correct values by bzero(), but lk_prio was 0 instead of PINOD (=8), the lk_wmsg was NULL instead of "ext2in", and lk_lockholder was 0 instead of -1. Obtained from: Lite2 via the -current ffs_vfsops.c
This commit is contained in:
parent
9493c9f45d
commit
d2c322d7f6
@ -938,6 +938,7 @@ restart:
|
|||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
bzero((caddr_t)ip, sizeof(struct inode));
|
bzero((caddr_t)ip, sizeof(struct inode));
|
||||||
|
lockinit(&ip->i_lock, PINOD, "ext2in", 0, 0);
|
||||||
vp->v_data = ip;
|
vp->v_data = ip;
|
||||||
ip->i_vnode = vp;
|
ip->i_vnode = vp;
|
||||||
ip->i_e2fs = fs = ump->um_e2fs;
|
ip->i_e2fs = fs = ump->um_e2fs;
|
||||||
|
@ -938,6 +938,7 @@ restart:
|
|||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
bzero((caddr_t)ip, sizeof(struct inode));
|
bzero((caddr_t)ip, sizeof(struct inode));
|
||||||
|
lockinit(&ip->i_lock, PINOD, "ext2in", 0, 0);
|
||||||
vp->v_data = ip;
|
vp->v_data = ip;
|
||||||
ip->i_vnode = vp;
|
ip->i_vnode = vp;
|
||||||
ip->i_e2fs = fs = ump->um_e2fs;
|
ip->i_e2fs = fs = ump->um_e2fs;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user