[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20080201153411.ec20cdc6.akpm@linux-foundation.org>
Date: Fri, 1 Feb 2008 15:34:11 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: Dave Hansen <haveblue@...ibm.com>
Cc: m.kozlowski@...land.pl, linux-kernel@...r.kernel.org,
davem@...emloft.net, sparclinux@...r.kernel.org, hch@....de
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49
__fput+0x1a8/0x1e0()
On Tue, 22 Jan 2008 15:13:58 -0800
Dave Hansen <haveblue@...ibm.com> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists