- if (vol == of->of_vol && olddir == of->of_dir &&
- s_of->key.dev == of->key.dev &&
- s_of->key.inode == of->key.inode ) {
- if (!done) {
- strlcpy( of_name(of), newpath, of->of_ad->ad_m_namelen);
- done = 1;
- }
- if (newdir != olddir) {
- of->of_d_prev->of_d_next = of->of_d_next;
- of->of_d_next->of_d_prev = of->of_d_prev;
- if (of->of_dir->d_ofork == of) {
- of->of_dir->d_ofork = (of == of->of_d_next) ? NULL : of->of_d_next;
- }
- of->of_dir = newdir;
- if (!(d_ofork = newdir->d_ofork)) {
- newdir->d_ofork = of;
- of->of_d_next = of->of_d_prev = of;
- } else {
- of->of_d_next = d_ofork;
- of->of_d_prev = d_ofork->of_d_prev;
- of->of_d_prev->of_d_next = of;
- d_ofork->of_d_prev = of;
- }
+ if (vol == of->of_vol
+ && olddir->d_did == of->of_did
+ && s_of->key.dev == of->key.dev
+ && s_of->key.inode == of->key.inode ) {
+ if (!done) {
+ strlcpy( of_name(of), newpath, of->of_ad->ad_m_namelen);
+ done = 1;