OpenCloudOS-Kernel/fs
Christoph Hellwig 907f4554e2 dquot: move dquot initialization responsibility into the filesystem
Currently various places in the VFS call vfs_dq_init directly.  This means
we tie the quota code into the VFS.  Get rid of that and make the
filesystem responsible for the initialization.   For most metadata operations
this is a straight forward move into the methods, but for truncate and
open it's a bit more complicated.

For truncate we currently only call vfs_dq_init for the sys_truncate case
because open already takes care of it for ftruncate and open(O_TRUNC) - the
new code causes an additional vfs_dq_init for those which is harmless.

For open the initialization is moved from do_filp_open into the open method,
which means it happens slightly earlier now, and only for regular files.
The latter is fine because we don't need to initialize it for operations
on special files, and we already do it as part of the namespace operations
for directories.

Add a dquot_file_open helper that filesystems that support generic quotas
can use to fill in ->open.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
2010-03-05 00:20:30 +01:00
..
9p 9p: fix memory leak in v9fs_parse_options() 2010-02-08 17:59:34 -06:00
adfs adfs: remove redundant test on unsigned 2009-09-24 07:21:05 -07:00
affs fix affs parse_options() 2010-01-26 22:22:25 -05:00
afs afs: remove manual O_SYNC handling 2009-12-10 15:02:50 +01:00
autofs trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
autofs4 autofs4: always use lookup for lookup 2009-12-16 07:19:58 -08:00
befs befs: fix leak 2010-02-07 03:06:21 -05:00
bfs Fix failure exits in bfs_fill_super() 2010-01-26 22:22:25 -05:00
btrfs Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2010-02-15 19:56:21 -08:00
cachefiles CacheFiles: Fix a race in cachefiles_delete_object() vs rename 2010-02-20 10:06:35 -05:00
cifs Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 2010-02-10 07:16:44 -08:00
coda sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
configfs Fix configfs leak 2010-01-14 09:05:42 -05:00
cramfs
debugfs get rid of pointless checks after simple_pin_fs() 2010-01-26 22:22:26 -05:00
devpts devpts_get_tty() should validate inode 2009-12-11 15:18:05 -08:00
dlm dlm: use bastmode in debugfs output 2010-02-26 12:15:54 -06:00
ecryptfs ecryptfs: use after free 2010-01-19 22:36:06 -06:00
efs get rid of BKL in fs/efs 2009-06-17 00:36:36 -04:00
exofs exofs: simple_write_end does not mark_inode_dirty 2010-01-05 09:14:32 +02:00
exportfs nfs: new subdir Documentation/filesystems/nfs 2009-10-27 19:34:04 -04:00
ext2 dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
ext3 dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
ext4 dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
fat Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6 2009-12-16 10:29:26 -08:00
freevxfs headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
fscache FS-Cache: Avoid maybe-used-uninitialised warning on variable 2009-12-16 07:20:13 -08:00
fuse mm: flush dcache before writing into page to avoid alias 2010-02-02 18:11:21 -08:00
gfs2 quota: move code from sync_quota_sb into vfs_quota_sync 2010-03-05 00:20:24 +01:00
hfs hfs: fix a potential buffer overflow 2009-12-15 08:53:10 -08:00
hfsplus hfsplus: refuse to mount volumes larger than 2TB 2009-10-29 07:39:27 -07:00
hostfs hostfs: set maximum filesize in superblock for proper LFS support 2009-06-30 18:56:03 -07:00
hpfs hpfs: use bitmap_weight() 2009-12-16 07:20:06 -08:00
hppfs hppfs: handle ->put_link() 2010-01-14 09:05:25 -05:00
hugetlbfs Untangling ima mess, part 1: alloc_file() 2009-12-16 12:16:47 -05:00
isofs Merge branch 'for-2.6.33' of git://linux-nfs.org/~bfields/linux 2009-12-16 10:43:34 -08:00
jbd jbd: Delay discarding buffers in journal_unmap_buffer 2010-03-05 00:20:26 +01:00
jbd2 jbd2: don't use __GFP_NOFAIL in journal_init_common() 2009-12-23 08:05:15 -05:00
jffs2 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2009-12-16 12:04:02 -08:00
jfs dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
lockd Merge branch 'for-2.6.33' of git://linux-nfs.org/~bfields/linux 2009-12-16 10:43:34 -08:00
minix V3 minixfs: add missing directory type checking 2009-09-23 07:39:57 -07:00
ncpfs tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
nfs Remove EXPERIMENTAL from NFS_FSCACHE 2010-02-26 17:22:35 -08:00
nfs_common
nfsd dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
nilfs2 nilfs2: fix potential leak of dirty data on umount 2010-01-31 14:57:31 +09:00
nls Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6 2009-09-30 09:31:14 -07:00
notify inotify: only warn once for inotify problems 2010-01-15 14:49:23 -08:00
ntfs kill I_LOCK 2009-12-17 11:03:25 -05:00
ocfs2 dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
omfs tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
openpromfs
partitions block: Stop using byte offsets 2010-01-11 14:30:09 +01:00
proc Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-02-28 10:13:16 -08:00
qnx4 qnx4: use hweight8 2009-12-16 07:20:18 -08:00
quota dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
ramfs nommu: fix shared mmap after truncate shrinkage problems 2010-01-16 12:15:40 -08:00
reiserfs dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
romfs fix leak in romfs_fill_super() 2010-01-26 22:22:26 -05:00
smbfs fs: Make unload_nls() NULL pointer safe 2009-09-24 07:47:42 -04:00
squashfs const: mark remaining super_operations const 2009-09-22 07:17:24 -07:00
sysfs sysfs: sysfs_sd_setattr set iattrs unconditionally 2010-02-16 15:42:42 -08:00
sysv get rid of BKL in fs/sysv 2009-06-17 00:36:37 -04:00
ubifs lib: Introduce generic list_sort function 2010-01-12 21:02:00 -08:00
udf dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
ufs dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
xfs quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota 2010-03-05 00:20:25 +01:00
Kconfig Revert "task_struct: make journal_info conditional" 2009-12-17 13:23:24 -08:00
Kconfig.binfmt
Makefile
aio.c aio: remove unused field 2009-12-16 07:20:13 -08:00
anon_inodes.c Sanitize f_flags helpers 2009-12-22 12:27:34 -05:00
attr.c dquot: move dquot transfer responsibility into the filesystem 2010-03-05 00:20:28 +01:00
bad_inode.c
binfmt_aout.c Split 'flush_old_exec' into two functions 2010-01-29 08:22:01 -08:00
binfmt_elf.c Split 'flush_old_exec' into two functions 2010-01-29 08:22:01 -08:00
binfmt_elf_fdpic.c Split 'flush_old_exec' into two functions 2010-01-29 08:22:01 -08:00
binfmt_em86.c
binfmt_flat.c Split 'flush_old_exec' into two functions 2010-01-29 08:22:01 -08:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c Split 'flush_old_exec' into two functions 2010-01-29 08:22:01 -08:00
bio-integrity.c block: fix bugs in bio-integrity mempool usage 2010-01-30 20:28:19 +01:00
bio.c Revert "blkdev: fix merge_bvec_fn return value checks" 2010-03-02 19:17:34 +01:00
block_dev.c freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb 2010-02-07 03:06:21 -05:00
buffer.c Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block 2009-09-25 09:27:30 -07:00
char_dev.c fs/char_dev.c: remove useless loop 2009-09-24 07:21:03 -07:00
compat.c compat.c: Remove dependence on nfsd private headers 2009-12-14 18:12:10 -05:00
compat_binfmt_elf.c
compat_ioctl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2010-02-11 14:05:55 -08:00
dcache.c libfs: move EXPORT_SYMBOL for d_alloc_name 2009-12-16 12:16:48 -05:00
dcookies.c
direct-io.c dio: fix use-after-free 2009-12-17 04:52:13 -05:00
drop_caches.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
eventfd.c eventfd - allow atomic read and waitqueue remove 2010-01-25 12:26:38 -02:00
eventpoll.c anonfd: Allow making anon files read-only 2009-12-22 12:27:34 -05:00
exec.c fs/exec.c: fix initial stack reservation 2010-02-22 19:50:34 -08:00
fcntl.c Fix race in tty_fasync() properly 2010-02-07 10:26:01 -08:00
fifo.c
file.c vfs: Apply lockdep-based checking to rcu_dereference() uses 2010-02-25 10:34:48 +01:00
file_table.c Take ima_file_free() to proper place. 2010-02-07 03:07:29 -05:00
filesystems.c
fs-writeback.c writeback: add missing kernel-doc notation 2010-01-02 10:09:44 -08:00
fs_struct.c
generic_acl.c make generic_acl slightly more generic 2009-12-16 12:16:49 -05:00
inode.c dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
internal.h Fix f_flags/f_mode in case of lookup_instantiate_filp() from open(pathname, 3) 2009-12-22 12:27:34 -05:00
ioctl.c __generic_block_fiemap(): fix for files bigger than 4GB 2009-11-12 07:26:01 -08:00
ioprio.c
libfs.c libfs: move EXPORT_SYMBOL for d_alloc_name 2009-12-16 12:16:48 -05:00
locks.c const: make lock_manager_operations const 2009-09-22 07:17:25 -07:00
mbcache.c
mpage.c
namei.c dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
namespace.c do_add_mount() should sanitize mnt_flags 2010-01-16 13:07:36 -05:00
nfsctl.c vfs: nfsctl.c un-used nfsd #includes 2009-12-14 18:12:11 -05:00
no-block.c
open.c dquot: move dquot initialization responsibility into the filesystem 2010-03-05 00:20:30 +01:00
pipe.c fs: no games with DCACHE_UNHASHED 2009-12-17 10:51:40 -05:00
pnode.c
pnode.h
posix_acl.c
read_write.c sendfile(): check f_op.splice_write() rather than f_op.sendpage() 2009-11-04 09:09:52 +01:00
read_write.h
readdir.c
select.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
seq_file.c seq_file: add RCU versions of new hlist/list iterators (v3) 2010-02-22 15:45:54 -08:00
signalfd.c anonfd: Allow making anon files read-only 2009-12-22 12:27:34 -05:00
splice.c sendfile(): check f_op.splice_write() rather than f_op.sendpage() 2009-11-04 09:09:52 +01:00
stack.c VFS/fsstack: handle 32-bit smp + preempt + large files in fsstack_copy_inode_size 2009-12-17 10:58:17 -05:00
stat.c Add unlocked version of inode_add_bytes() function 2009-12-23 13:33:54 +01:00
super.c vfs: get_sb_single() - do not pass options twice 2009-12-23 11:23:43 -08:00
sync.c quota: move code from sync_quota_sb into vfs_quota_sync 2010-03-05 00:20:24 +01:00
timerfd.c anonfd: Allow making anon files read-only 2009-12-22 12:27:34 -05:00
utimes.c
xattr.c sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00
xattr_acl.c VFS: Use GFP_NOFS in posix_acl_from_xattr() 2009-12-03 11:48:07 +00:00