On Fri, Jun 16, 2006 at 04:12:21PM -0700, Dave Hansen wrote: > + err = mnt_want_write(ffhp->fh_export->ex_mnt); > + if (err) > + goto out_dput_new; > + > + err = mnt_want_write(tfhp->fh_export->ex_mnt); > + if (err) > + goto out_mnt_drop_write_old; > + > err = vfs_rename(fdir, odentry, tdir, ndentry); > if (!err && EX_ISSYNC(tfhp->fh_export)) { > err = nfsd_sync_dir(tdentry); > if (!err) > err = nfsd_sync_dir(fdentry); > } > - > + mnt_drop_write(tfhp->fh_export->ex_mnt); > + out_mnt_drop_write_old: > + mnt_drop_write(ffhp->fh_export->ex_mnt); Ahem... a) nfsd_rename() should check that tfhp->fh_export->ex_mnt == ffhp->fh_export->ex_mnt (if not that tfhp->fh_export == ffhp->fh_export) instead of comparing ->i_sb b) that patch should do mnt_want_write() only once. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html