X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fjfs%2Facl.c;h=fc584f2194f4fa65542ba500485f3ab5ddc99fd6;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=8353f48f72393ca71981138500e39c07362ce853;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c index 8353f48f7..fc584f219 100644 --- a/fs/jfs/acl.c +++ b/fs/jfs/acl.c @@ -1,7 +1,7 @@ /* - * Copyright (c) International Business Machines Corp., 2002 - * Copyright (c) Andreas Gruenbacher, 2001 - * Copyright (c) Linus Torvalds, 1991, 1992 + * Copyright (C) International Business Machines Corp., 2002-2004 + * Copyright (C) Andreas Gruenbacher, 2001 + * Copyright (C) Linus Torvalds, 1991, 1992 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #include #include +#include #include "jfs_incore.h" #include "jfs_xattr.h" #include "jfs_acl.h" @@ -281,6 +282,12 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr) if (rc) return rc; + if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || + (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { + if (DQUOT_TRANSFER(inode, iattr)) + return -EDQUOT; + } + rc = inode_setattr(inode, iattr); if (!rc && (iattr->ia_valid & ATTR_MODE))