Re: do_ext2_rename oops

Tall cool one (ice@mama.indstate.edu)
Fri, 1 Aug 1997 14:03:05 -0500


Frank Sweetser <rasmusin@WPI.EDU> writes:
> Got this oops with
>
> 2.0.31-pre2
> ext2 IO error handline
> immutable check
> (don't have the eact patch names, but they're all from linuxhq.com)
>
> Caused consistently by updatedb calling mv (updatedb runs on bootup
> on my machine). Funny thing is, it never happens if I remove the immutable
> check in do_ext2_rename.

The patch fails to check if new_inode is not null. The if line of the
patch should read:

if (new_inode && (IS_APPEND(new_inode) || IS_IMMUTABLE(new_inode)))
goto end_rename;

So the patch should be:

-------- cut --------
diff -u --recursive linux-orig/fs/ext2/namei.c linux/fs/ext2/namei.c
--- linux-orig/fs/ext2/namei.c Sat Nov 30 05:21:20 1996
+++ linux/fs/ext2/namei.c Tue Jun 10 11:57:52 1997
@@ -1019,6 +1019,8 @@
current->fsuid != new_inode->i_uid &&
current->fsuid != new_dir->i_uid && !fsuser())
goto end_rename;
+ if (new_inode && (IS_APPEND(new_inode) || IS_IMMUTABLE(new_inode)))
+ goto end_rename;
if (S_ISDIR(old_inode->i_mode)) {
retval = -ENOTDIR;
if (new_inode && !S_ISDIR(new_inode->i_mode))
-------- cut --------

Strange that I myself haven't seen this yet, since I've been using it for
over a month now. Please let me know if this doesn't fix it.

- Steve

.------------------------------------------------. # * # # # # # #
| Steve Baker | Barely Working | # ## # # # # #
| ice@mama.indstate.edu | System Administrator | # # # # # # # #
| Red-Hat Rulz! | Will work for hardware | # # # ## # # # #
`-- SYS-ADMIN FOR HIRE, HAVE UNIX, WILL TRAVEL --' #### # # # ## # #