Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49__fput+0x1a8/0x1e0()

From: Andrew Morton
Date: Fri Feb 01 2008 - 18:34:46 EST


On Tue, 22 Jan 2008 15:13:58 -0800
Dave Hansen <haveblue@xxxxxxxxxx> wrote:

> @@ -566,10 +567,26 @@ static void mark_files_ro(struct super_b
> {
> struct file *f;
>
> +retry:
> file_list_lock();
> list_for_each_entry(f, &sb->s_files, f_u.fu_list) {
> - if (S_ISREG(f->f_path.dentry->d_inode->i_mode) && file_count(f))
> - f->f_mode &= ~FMODE_WRITE;
> + struct vfsmount mnt;
> + if (!S_ISREG(f->f_path.dentry->d_inode->i_mode))
> + continue;
> + if (!file_count(f))
> + continue;
> + if (!(f->f_mode & FMODE_WRITE))
> + continue;
> + f->f_mode &= ~FMODE_WRITE;
> + f->f_mnt_write_state |= FILE_MNT_WRITE_RELEASED;
> + mnt = f->f_path.mnt;
> + file_list_unlock();
> + /*
> + * This can sleep, so we can't hold
> + * the file_list_lock() spinlock.
> + */
> + mnt_drop_write(mnt);
> + goto retry;
> }
> file_list_unlock();
> }
> _

this doesn't even compile. How much confidence am I supposed
to have that once I've fixed it, it will actually work?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/