aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/Locking
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2010-03-03 09:05:00 -0500
committerJan Kara <jack@suse.cz>2010-03-04 18:20:28 -0500
commit5dd4056db84387975140ff2568eaa0406f07985e (patch)
tree03c26d7f6e3367b167bfeeb1a01654c6619573f4 /Documentation/filesystems/Locking
parent49792c806d0bfd53afc789dcdf50dc9bed2c5b83 (diff)
dquot: cleanup space allocation / freeing routines
Get rid of the alloc_space, free_space, reserve_space, claim_space and release_rsv dquot operations - they are always called from the filesystem and if a filesystem really needs their own (which none currently does) it can just call into it's own routine directly. Move shared logic into the common __dquot_alloc_space, dquot_claim_space_nodirty and __dquot_free_space low-level methods, and rationalize the wrappers around it to move as much as possible code into the common block for CONFIG_QUOTA vs not. Also rename all these helpers to be named dquot_* instead of vfs_dq_*. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'Documentation/filesystems/Locking')
-rw-r--r--Documentation/filesystems/Locking6
1 files changed, 1 insertions, 5 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 18b9d0ca0630..1192fde11638 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -462,9 +462,7 @@ in sys_read() and friends.
462prototypes: 462prototypes:
463 int (*initialize) (struct inode *, int); 463 int (*initialize) (struct inode *, int);
464 int (*drop) (struct inode *); 464 int (*drop) (struct inode *);
465 int (*alloc_space) (struct inode *, qsize_t, int);
466 int (*alloc_inode) (const struct inode *, unsigned long); 465 int (*alloc_inode) (const struct inode *, unsigned long);
467 int (*free_space) (struct inode *, qsize_t);
468 int (*free_inode) (const struct inode *, unsigned long); 466 int (*free_inode) (const struct inode *, unsigned long);
469 int (*transfer) (struct inode *, struct iattr *); 467 int (*transfer) (struct inode *, struct iattr *);
470 int (*write_dquot) (struct dquot *); 468 int (*write_dquot) (struct dquot *);
@@ -481,9 +479,7 @@ What filesystem should expect from the generic quota functions:
481 FS recursion Held locks when called 479 FS recursion Held locks when called
482initialize: yes maybe dqonoff_sem 480initialize: yes maybe dqonoff_sem
483drop: yes - 481drop: yes -
484alloc_space: ->mark_dirty() -
485alloc_inode: ->mark_dirty() - 482alloc_inode: ->mark_dirty() -
486free_space: ->mark_dirty() -
487free_inode: ->mark_dirty() - 483free_inode: ->mark_dirty() -
488transfer: yes - 484transfer: yes -
489write_dquot: yes dqonoff_sem or dqptr_sem 485write_dquot: yes dqonoff_sem or dqptr_sem
@@ -495,7 +491,7 @@ write_info: yes dqonoff_sem
495FS recursion means calling ->quota_read() and ->quota_write() from superblock 491FS recursion means calling ->quota_read() and ->quota_write() from superblock
496operations. 492operations.
497 493
498->alloc_space(), ->alloc_inode(), ->free_space(), ->free_inode() are called 494->alloc_inode(), ->free_inode() are called
499only directly by the filesystem and do not call any fs functions only 495only directly by the filesystem and do not call any fs functions only
500the ->mark_dirty() operation. 496the ->mark_dirty() operation.
501 497