--- linux-2.6.5/fs/attr.c~ 2004-04-16 22:36:00.000000000 +0100
+++ linux-2.6.5/fs/attr.c 2004-04-16 22:36:37.000000000 +0100
@@ -130,7 +130,7 @@
int notify_change(struct dentry * dentry, struct iattr * attr)
{
struct inode *inode = dentry->d_inode;
- mode_t mode = inode->i_mode;
+ mode_t mode;
int error;
struct timespec now = CURRENT_TIME;
unsigned int ia_valid = attr->ia_valid;
@@ -138,6 +138,7 @@
if (!inode)
BUG();
+ mode = inode->i_mode;
attr->ia_ctime = now;
if (!(ia_valid & ATTR_ATIME_SET))
attr->ia_atime = now;
I disagree on this one - at least with the message.
The fact is, "inode" can't be NULL. We have a BUG() check for it, but
getting a page fault would be equally effective.
Linus
On Fri, 16 Apr 2004, Dave Jones wrote:
>
> --- linux-2.6.5/fs/attr.c~ 2004-04-16 22:36:00.000000000 +0100
> +++ linux-2.6.5/fs/attr.c 2004-04-16 22:36:37.000000000 +0100
> @@ -130,7 +130,7 @@
> int notify_change(struct dentry * dentry, struct iattr * attr)
> {
> struct inode *inode = dentry->d_inode;
> - mode_t mode = inode->i_mode;
> + mode_t mode;
> int error;
> struct timespec now = CURRENT_TIME;
> unsigned int ia_valid = attr->ia_valid;
> @@ -138,6 +138,7 @@
> if (!inode)
> BUG();
>
> + mode = inode->i_mode;
> attr->ia_ctime = now;
> if (!(ia_valid & ATTR_ATIME_SET))
> attr->ia_atime = now;
>
On Fri, Apr 16, 2004 at 10:37:43PM +0100, Dave Jones wrote:
>
> --- linux-2.6.5/fs/attr.c~ 2004-04-16 22:36:00.000000000 +0100
> +++ linux-2.6.5/fs/attr.c 2004-04-16 22:36:37.000000000 +0100
> @@ -130,7 +130,7 @@
> int notify_change(struct dentry * dentry, struct iattr * attr)
> {
> struct inode *inode = dentry->d_inode;
> - mode_t mode = inode->i_mode;
> + mode_t mode;
Passing a NULL argument to notify_change() is invalid.