X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fjfs%2Fjfs_inode.c;h=84f2459b2191d63d0ae5fbb182b392773de58152;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=3e8592b9b0fcb5feb59131d42e37729a15e526da;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/fs/jfs/jfs_inode.c b/fs/jfs/jfs_inode.c index 3e8592b9b..84f2459b2 100644 --- a/fs/jfs/jfs_inode.c +++ b/fs/jfs/jfs_inode.c @@ -1,5 +1,5 @@ /* - * Copyright (c) International Business Machines Corp., 2000-2002 + * Copyright (C) International Business Machines Corp., 2000-2004 * * 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 @@ -17,6 +17,7 @@ */ #include +#include #include "jfs_incore.h" #include "jfs_filsys.h" #include "jfs_imap.h" @@ -60,6 +61,17 @@ struct inode *ialloc(struct inode *parent, umode_t mode) } else inode->i_gid = current->fsgid; + /* + * Allocate inode to quota. + */ + if (DQUOT_ALLOC_INODE(inode)) { + DQUOT_DROP(inode); + inode->i_flags |= S_NOQUOTA; + inode->i_nlink = 0; + iput(inode); + return NULL; + } + inode->i_mode = mode; if (S_ISDIR(mode)) jfs_inode->mode2 = IDIRECTORY | mode;