--- linux-2.6.5-7.97ZP2/fs/relayfs/relay.c.old 2005-02-02 18:43:24.918844376 +1100 +++ linux-2.6.5-7.97ZP2/fs/relayfs/relay.c 2005-02-02 18:44:33.725384192 +1100 @@ -184,6 +184,7 @@ struct rchan *rchan = (struct rchan *)private; relayfs_remove_file(rchan->dentry); + kfree(rchan); } @@ -212,12 +213,10 @@ goto exit; rchan_free_id(rchan->id); + clear_readers(rchan); INIT_WORK(&rchan->work, remove_rchan_file, rchan); schedule_delayed_work(&rchan->work, 1); - - clear_readers(rchan); - kfree(rchan); exit: return err; }