Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.4.11 /fs/attr.c

Filename:/fs/attr.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.4.11-pre6  2.4.11-pre5  2.4.10-ac10  2.4.10-ac9  2.4.10-ac8  2.4.10-ac7 
(Following) 2.4.12-ac1  2.4.12-ac2  2.4.12-ac3  2.4.12-ac4  2.4.12-ac5  2.4.12-ac6 

Location
[  2.4.11
  [  fs
     o  attr.c

Patch

diff -u --recursive --new-file v2.4.10/linux/fs/attr.c linux/fs/attr.c
--- v2.4.10/linux/fs/attr.c   Sun Sep 23 11:41:00 2001
+++ linux/fs/attr.c   Fri Oct  5 12:23:53 2001
@@ -11,6 +11,7 @@
 #include <linux/smp_lock.h>
 #include <linux/dnotify.h>
 #include <linux/fcntl.h>
+#include <linux/quotaops.h>
 
 /* Taken over from the old code... */
 
@@ -131,8 +132,13 @@
       error = inode->i_op->setattr(dentry, attr);
    else {
       error = inode_change_ok(inode, attr);
-      if (!error)
-         inode_setattr(inode, attr);
+      if (!error) {
+         if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
+             (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid))
+            error = DQUOT_TRANSFER(inode, attr) ? -EDQUOT : 0;
+         if (!error)
+            inode_setattr(inode, attr);
+      }
    }
    unlock_kernel();
    if (!error) {


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.