mirror of https://gitee.com/openkylin/linux.git
[PATCH] DocBook: fix some descriptions
Some KernelDoc descriptions are updated to match the current code. No code changes. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
6013d5445f
commit
67be2dd1ba
|
@ -379,8 +379,8 @@ ACPI_DEVICE_ATTR(eject, 0200, NULL, acpi_eject_store);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setup_sys_fs_device_files - sets up the device files under device namespace
|
* setup_sys_fs_device_files - sets up the device files under device namespace
|
||||||
* @@dev: acpi_device object
|
* @dev: acpi_device object
|
||||||
* @@func: function pointer to create or destroy the device file
|
* @func: function pointer to create or destroy the device file
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
setup_sys_fs_device_files (
|
setup_sys_fs_device_files (
|
||||||
|
|
|
@ -115,7 +115,7 @@ int platform_add_devices(struct platform_device **devs, int num)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* platform_device_register - add a platform-level device
|
* platform_device_register - add a platform-level device
|
||||||
* @dev: platform device we're adding
|
* @pdev: platform device we're adding
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int platform_device_register(struct platform_device * pdev)
|
int platform_device_register(struct platform_device * pdev)
|
||||||
|
@ -174,7 +174,7 @@ int platform_device_register(struct platform_device * pdev)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* platform_device_unregister - remove a platform-level device
|
* platform_device_unregister - remove a platform-level device
|
||||||
* @dev: platform device we're removing
|
* @pdev: platform device we're removing
|
||||||
*
|
*
|
||||||
* Note that this function will also release all memory- and port-based
|
* Note that this function will also release all memory- and port-based
|
||||||
* resources owned by the device (@dev->resource).
|
* resources owned by the device (@dev->resource).
|
||||||
|
|
|
@ -120,6 +120,10 @@ static int pci_visit_bridge (struct pci_visit * fn,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_visit_dev - scans the pci buses.
|
* pci_visit_dev - scans the pci buses.
|
||||||
|
* @fn: callback functions that are called while visiting
|
||||||
|
* @wrapped_dev: the device to scan
|
||||||
|
* @wrapped_parent: the bus where @wrapped_dev is connected to
|
||||||
|
*
|
||||||
* Every bus and every function is presented to a custom
|
* Every bus and every function is presented to a custom
|
||||||
* function that can act upon it.
|
* function that can act upon it.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_enable_rom - enable ROM decoding for a PCI device
|
* pci_enable_rom - enable ROM decoding for a PCI device
|
||||||
* @dev: PCI device to enable
|
* @pdev: PCI device to enable
|
||||||
*
|
*
|
||||||
* Enable ROM decoding on @dev. This involves simply turning on the last
|
* Enable ROM decoding on @dev. This involves simply turning on the last
|
||||||
* bit of the PCI ROM BAR. Note that some cards may share address decoders
|
* bit of the PCI ROM BAR. Note that some cards may share address decoders
|
||||||
|
@ -32,7 +32,7 @@ static void pci_enable_rom(struct pci_dev *pdev)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_disable_rom - disable ROM decoding for a PCI device
|
* pci_disable_rom - disable ROM decoding for a PCI device
|
||||||
* @dev: PCI device to disable
|
* @pdev: PCI device to disable
|
||||||
*
|
*
|
||||||
* Disable ROM decoding on a PCI device by turning off the last bit in the
|
* Disable ROM decoding on a PCI device by turning off the last bit in the
|
||||||
* ROM BAR.
|
* ROM BAR.
|
||||||
|
@ -47,7 +47,7 @@ static void pci_disable_rom(struct pci_dev *pdev)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_map_rom - map a PCI ROM to kernel space
|
* pci_map_rom - map a PCI ROM to kernel space
|
||||||
* @dev: pointer to pci device struct
|
* @pdev: pointer to pci device struct
|
||||||
* @size: pointer to receive size of pci window over ROM
|
* @size: pointer to receive size of pci window over ROM
|
||||||
* @return: kernel virtual pointer to image of ROM
|
* @return: kernel virtual pointer to image of ROM
|
||||||
*
|
*
|
||||||
|
@ -132,7 +132,7 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_map_rom_copy - map a PCI ROM to kernel space, create a copy
|
* pci_map_rom_copy - map a PCI ROM to kernel space, create a copy
|
||||||
* @dev: pointer to pci device struct
|
* @pdev: pointer to pci device struct
|
||||||
* @size: pointer to receive size of pci window over ROM
|
* @size: pointer to receive size of pci window over ROM
|
||||||
* @return: kernel virtual pointer to image of ROM
|
* @return: kernel virtual pointer to image of ROM
|
||||||
*
|
*
|
||||||
|
@ -166,7 +166,7 @@ void __iomem *pci_map_rom_copy(struct pci_dev *pdev, size_t *size)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_unmap_rom - unmap the ROM from kernel space
|
* pci_unmap_rom - unmap the ROM from kernel space
|
||||||
* @dev: pointer to pci device struct
|
* @pdev: pointer to pci device struct
|
||||||
* @rom: virtual address of the previous mapping
|
* @rom: virtual address of the previous mapping
|
||||||
*
|
*
|
||||||
* Remove a mapping of a previously mapped ROM
|
* Remove a mapping of a previously mapped ROM
|
||||||
|
@ -187,7 +187,7 @@ void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_remove_rom - disable the ROM and remove its sysfs attribute
|
* pci_remove_rom - disable the ROM and remove its sysfs attribute
|
||||||
* @dev: pointer to pci device struct
|
* @pdev: pointer to pci device struct
|
||||||
*
|
*
|
||||||
* Remove the rom file in sysfs and disable ROM decoding.
|
* Remove the rom file in sysfs and disable ROM decoding.
|
||||||
*/
|
*/
|
||||||
|
@ -206,7 +206,7 @@ void pci_remove_rom(struct pci_dev *pdev)
|
||||||
/**
|
/**
|
||||||
* pci_cleanup_rom - internal routine for freeing the ROM copy created
|
* pci_cleanup_rom - internal routine for freeing the ROM copy created
|
||||||
* by pci_map_rom_copy called from remove.c
|
* by pci_map_rom_copy called from remove.c
|
||||||
* @dev: pointer to pci device struct
|
* @pdev: pointer to pci device struct
|
||||||
*
|
*
|
||||||
* Free the copied ROM if we allocated one.
|
* Free the copied ROM if we allocated one.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -253,7 +253,7 @@ void pnp_init_resource_table(struct pnp_resource_table *table)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pnp_clean_resources - clears resources that were not manually set
|
* pnp_clean_resources - clears resources that were not manually set
|
||||||
* @res - the resources to clean
|
* @res: the resources to clean
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void pnp_clean_resource_table(struct pnp_resource_table * res)
|
static void pnp_clean_resource_table(struct pnp_resource_table * res)
|
||||||
|
|
2
fs/bio.c
2
fs/bio.c
|
@ -140,6 +140,7 @@ inline void bio_init(struct bio *bio)
|
||||||
* bio_alloc_bioset - allocate a bio for I/O
|
* bio_alloc_bioset - allocate a bio for I/O
|
||||||
* @gfp_mask: the GFP_ mask given to the slab allocator
|
* @gfp_mask: the GFP_ mask given to the slab allocator
|
||||||
* @nr_iovecs: number of iovecs to pre-allocate
|
* @nr_iovecs: number of iovecs to pre-allocate
|
||||||
|
* @bs: the bio_set to allocate from
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* bio_alloc_bioset will first try it's on mempool to satisfy the allocation.
|
* bio_alloc_bioset will first try it's on mempool to satisfy the allocation.
|
||||||
|
@ -629,6 +630,7 @@ static struct bio *__bio_map_user(request_queue_t *q, struct block_device *bdev,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* bio_map_user - map user address into bio
|
* bio_map_user - map user address into bio
|
||||||
|
* @q: the request_queue_t for the bio
|
||||||
* @bdev: destination block device
|
* @bdev: destination block device
|
||||||
* @uaddr: start of user address
|
* @uaddr: start of user address
|
||||||
* @len: length in bytes
|
* @len: length in bytes
|
||||||
|
|
11
fs/buffer.c
11
fs/buffer.c
|
@ -774,15 +774,14 @@ static int osync_buffers_list(spinlock_t *lock, struct list_head *list)
|
||||||
/**
|
/**
|
||||||
* sync_mapping_buffers - write out and wait upon a mapping's "associated"
|
* sync_mapping_buffers - write out and wait upon a mapping's "associated"
|
||||||
* buffers
|
* buffers
|
||||||
* @buffer_mapping - the mapping which backs the buffers' data
|
* @mapping: the mapping which wants those buffers written
|
||||||
* @mapping - the mapping which wants those buffers written
|
|
||||||
*
|
*
|
||||||
* Starts I/O against the buffers at mapping->private_list, and waits upon
|
* Starts I/O against the buffers at mapping->private_list, and waits upon
|
||||||
* that I/O.
|
* that I/O.
|
||||||
*
|
*
|
||||||
* Basically, this is a convenience function for fsync(). @buffer_mapping is
|
* Basically, this is a convenience function for fsync().
|
||||||
* the blockdev which "owns" the buffers and @mapping is a file or directory
|
* @mapping is a file or directory which needs those buffers to be written for
|
||||||
* which needs those buffers to be written for a successful fsync().
|
* a successful fsync().
|
||||||
*/
|
*/
|
||||||
int sync_mapping_buffers(struct address_space *mapping)
|
int sync_mapping_buffers(struct address_space *mapping)
|
||||||
{
|
{
|
||||||
|
@ -1263,6 +1262,7 @@ __getblk_slow(struct block_device *bdev, sector_t block, int size)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mark_buffer_dirty - mark a buffer_head as needing writeout
|
* mark_buffer_dirty - mark a buffer_head as needing writeout
|
||||||
|
* @bh: the buffer_head to mark dirty
|
||||||
*
|
*
|
||||||
* mark_buffer_dirty() will set the dirty bit against the buffer, then set its
|
* mark_buffer_dirty() will set the dirty bit against the buffer, then set its
|
||||||
* backing page dirty, then tag the page as dirty in its address_space's radix
|
* backing page dirty, then tag the page as dirty in its address_space's radix
|
||||||
|
@ -1501,6 +1501,7 @@ EXPORT_SYMBOL(__breadahead);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __bread() - reads a specified block and returns the bh
|
* __bread() - reads a specified block and returns the bh
|
||||||
|
* @bdev: the block_device to read from
|
||||||
* @block: number of block
|
* @block: number of block
|
||||||
* @size: size (in bytes) to read
|
* @size: size (in bytes) to read
|
||||||
*
|
*
|
||||||
|
|
|
@ -512,7 +512,8 @@ static struct super_block *get_super_to_sync(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sync_inodes
|
* sync_inodes - writes all inodes to disk
|
||||||
|
* @wait: wait for completion
|
||||||
*
|
*
|
||||||
* sync_inodes() goes through each super block's dirty inode list, writes the
|
* sync_inodes() goes through each super block's dirty inode list, writes the
|
||||||
* inodes out, waits on the writeout and puts the inodes back on the normal
|
* inodes out, waits on the writeout and puts the inodes back on the normal
|
||||||
|
@ -604,6 +605,7 @@ EXPORT_SYMBOL(sync_inode);
|
||||||
/**
|
/**
|
||||||
* generic_osync_inode - flush all dirty data for a given inode to disk
|
* generic_osync_inode - flush all dirty data for a given inode to disk
|
||||||
* @inode: inode to write
|
* @inode: inode to write
|
||||||
|
* @mapping: the address_space that should be flushed
|
||||||
* @what: what to write and wait upon
|
* @what: what to write and wait upon
|
||||||
*
|
*
|
||||||
* This can be called by file_write functions for files which have the
|
* This can be called by file_write functions for files which have the
|
||||||
|
|
92
fs/mpage.c
92
fs/mpage.c
|
@ -160,52 +160,6 @@ map_buffer_to_page(struct page *page, struct buffer_head *bh, int page_block)
|
||||||
} while (page_bh != head);
|
} while (page_bh != head);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* mpage_readpages - populate an address space with some pages, and
|
|
||||||
* start reads against them.
|
|
||||||
*
|
|
||||||
* @mapping: the address_space
|
|
||||||
* @pages: The address of a list_head which contains the target pages. These
|
|
||||||
* pages have their ->index populated and are otherwise uninitialised.
|
|
||||||
*
|
|
||||||
* The page at @pages->prev has the lowest file offset, and reads should be
|
|
||||||
* issued in @pages->prev to @pages->next order.
|
|
||||||
*
|
|
||||||
* @nr_pages: The number of pages at *@pages
|
|
||||||
* @get_block: The filesystem's block mapper function.
|
|
||||||
*
|
|
||||||
* This function walks the pages and the blocks within each page, building and
|
|
||||||
* emitting large BIOs.
|
|
||||||
*
|
|
||||||
* If anything unusual happens, such as:
|
|
||||||
*
|
|
||||||
* - encountering a page which has buffers
|
|
||||||
* - encountering a page which has a non-hole after a hole
|
|
||||||
* - encountering a page with non-contiguous blocks
|
|
||||||
*
|
|
||||||
* then this code just gives up and calls the buffer_head-based read function.
|
|
||||||
* It does handle a page which has holes at the end - that is a common case:
|
|
||||||
* the end-of-file on blocksize < PAGE_CACHE_SIZE setups.
|
|
||||||
*
|
|
||||||
* BH_Boundary explanation:
|
|
||||||
*
|
|
||||||
* There is a problem. The mpage read code assembles several pages, gets all
|
|
||||||
* their disk mappings, and then submits them all. That's fine, but obtaining
|
|
||||||
* the disk mappings may require I/O. Reads of indirect blocks, for example.
|
|
||||||
*
|
|
||||||
* So an mpage read of the first 16 blocks of an ext2 file will cause I/O to be
|
|
||||||
* submitted in the following order:
|
|
||||||
* 12 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16
|
|
||||||
* because the indirect block has to be read to get the mappings of blocks
|
|
||||||
* 13,14,15,16. Obviously, this impacts performance.
|
|
||||||
*
|
|
||||||
* So what we do it to allow the filesystem's get_block() function to set
|
|
||||||
* BH_Boundary when it maps block 11. BH_Boundary says: mapping of the block
|
|
||||||
* after this one will require I/O against a block which is probably close to
|
|
||||||
* this one. So you should push what I/O you have currently accumulated.
|
|
||||||
*
|
|
||||||
* This all causes the disk requests to be issued in the correct order.
|
|
||||||
*/
|
|
||||||
static struct bio *
|
static struct bio *
|
||||||
do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages,
|
do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages,
|
||||||
sector_t *last_block_in_bio, get_block_t get_block)
|
sector_t *last_block_in_bio, get_block_t get_block)
|
||||||
|
@ -320,6 +274,52 @@ do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mpage_readpages - populate an address space with some pages, and
|
||||||
|
* start reads against them.
|
||||||
|
*
|
||||||
|
* @mapping: the address_space
|
||||||
|
* @pages: The address of a list_head which contains the target pages. These
|
||||||
|
* pages have their ->index populated and are otherwise uninitialised.
|
||||||
|
*
|
||||||
|
* The page at @pages->prev has the lowest file offset, and reads should be
|
||||||
|
* issued in @pages->prev to @pages->next order.
|
||||||
|
*
|
||||||
|
* @nr_pages: The number of pages at *@pages
|
||||||
|
* @get_block: The filesystem's block mapper function.
|
||||||
|
*
|
||||||
|
* This function walks the pages and the blocks within each page, building and
|
||||||
|
* emitting large BIOs.
|
||||||
|
*
|
||||||
|
* If anything unusual happens, such as:
|
||||||
|
*
|
||||||
|
* - encountering a page which has buffers
|
||||||
|
* - encountering a page which has a non-hole after a hole
|
||||||
|
* - encountering a page with non-contiguous blocks
|
||||||
|
*
|
||||||
|
* then this code just gives up and calls the buffer_head-based read function.
|
||||||
|
* It does handle a page which has holes at the end - that is a common case:
|
||||||
|
* the end-of-file on blocksize < PAGE_CACHE_SIZE setups.
|
||||||
|
*
|
||||||
|
* BH_Boundary explanation:
|
||||||
|
*
|
||||||
|
* There is a problem. The mpage read code assembles several pages, gets all
|
||||||
|
* their disk mappings, and then submits them all. That's fine, but obtaining
|
||||||
|
* the disk mappings may require I/O. Reads of indirect blocks, for example.
|
||||||
|
*
|
||||||
|
* So an mpage read of the first 16 blocks of an ext2 file will cause I/O to be
|
||||||
|
* submitted in the following order:
|
||||||
|
* 12 0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16
|
||||||
|
* because the indirect block has to be read to get the mappings of blocks
|
||||||
|
* 13,14,15,16. Obviously, this impacts performance.
|
||||||
|
*
|
||||||
|
* So what we do it to allow the filesystem's get_block() function to set
|
||||||
|
* BH_Boundary when it maps block 11. BH_Boundary says: mapping of the block
|
||||||
|
* after this one will require I/O against a block which is probably close to
|
||||||
|
* this one. So you should push what I/O you have currently accumulated.
|
||||||
|
*
|
||||||
|
* This all causes the disk requests to be issued in the correct order.
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
mpage_readpages(struct address_space *mapping, struct list_head *pages,
|
mpage_readpages(struct address_space *mapping, struct list_head *pages,
|
||||||
unsigned nr_pages, get_block_t get_block)
|
unsigned nr_pages, get_block_t get_block)
|
||||||
|
|
|
@ -1742,7 +1742,7 @@ struct dentry *proc_pid_unhash(struct task_struct *p)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* proc_pid_flush - recover memory used by stale /proc/@pid/x entries
|
* proc_pid_flush - recover memory used by stale /proc/@pid/x entries
|
||||||
* @proc_entry: directoy to prune.
|
* @proc_dentry: directoy to prune.
|
||||||
*
|
*
|
||||||
* Shrink the /proc directory that was used by the just killed thread.
|
* Shrink the /proc directory that was used by the just killed thread.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -51,7 +51,10 @@ EXPORT_SYMBOL(seq_open);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* seq_read - ->read() method for sequential files.
|
* seq_read - ->read() method for sequential files.
|
||||||
* @file, @buf, @size, @ppos: see file_operations method
|
* @file: the file to read from
|
||||||
|
* @buf: the buffer to read to
|
||||||
|
* @size: the maximum number of bytes to read
|
||||||
|
* @ppos: the current position in the file
|
||||||
*
|
*
|
||||||
* Ready-made ->f_op->read()
|
* Ready-made ->f_op->read()
|
||||||
*/
|
*/
|
||||||
|
@ -219,7 +222,9 @@ static int traverse(struct seq_file *m, loff_t offset)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* seq_lseek - ->llseek() method for sequential files.
|
* seq_lseek - ->llseek() method for sequential files.
|
||||||
* @file, @offset, @origin: see file_operations method
|
* @file: the file in question
|
||||||
|
* @offset: new position
|
||||||
|
* @origin: 0 for absolute, 1 for relative position
|
||||||
*
|
*
|
||||||
* Ready-made ->f_op->llseek()
|
* Ready-made ->f_op->llseek()
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -96,7 +96,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer
|
||||||
/**
|
/**
|
||||||
* flush_read_buffer - push buffer to userspace.
|
* flush_read_buffer - push buffer to userspace.
|
||||||
* @buffer: data buffer for file.
|
* @buffer: data buffer for file.
|
||||||
* @userbuf: user-passed buffer.
|
* @buf: user-passed buffer.
|
||||||
* @count: number of bytes requested.
|
* @count: number of bytes requested.
|
||||||
* @ppos: file position.
|
* @ppos: file position.
|
||||||
*
|
*
|
||||||
|
@ -164,7 +164,7 @@ sysfs_read_file(struct file *file, char __user *buf, size_t count, loff_t *ppos)
|
||||||
/**
|
/**
|
||||||
* fill_write_buffer - copy buffer from userspace.
|
* fill_write_buffer - copy buffer from userspace.
|
||||||
* @buffer: data buffer for file.
|
* @buffer: data buffer for file.
|
||||||
* @userbuf: data from user.
|
* @buf: data from user.
|
||||||
* @count: number of bytes in @userbuf.
|
* @count: number of bytes in @userbuf.
|
||||||
*
|
*
|
||||||
* Allocate @buffer->page if it hasn't been already, then
|
* Allocate @buffer->page if it hasn't been already, then
|
||||||
|
|
|
@ -1065,71 +1065,75 @@ int sync_inode(struct inode *inode, struct writeback_control *wbc);
|
||||||
* with a particular exported file system - particularly enabling nfsd and
|
* with a particular exported file system - particularly enabling nfsd and
|
||||||
* the filesystem to co-operate when dealing with file handles.
|
* the filesystem to co-operate when dealing with file handles.
|
||||||
*
|
*
|
||||||
* export_operations contains two basic operation for dealing with file handles,
|
* export_operations contains two basic operation for dealing with file
|
||||||
* decode_fh() and encode_fh(), and allows for some other operations to be defined
|
* handles, decode_fh() and encode_fh(), and allows for some other
|
||||||
* which standard helper routines use to get specific information from the
|
* operations to be defined which standard helper routines use to get
|
||||||
* filesystem.
|
* specific information from the filesystem.
|
||||||
*
|
*
|
||||||
* nfsd encodes information use to determine which filesystem a filehandle
|
* nfsd encodes information use to determine which filesystem a filehandle
|
||||||
* applies to in the initial part of the file handle. The remainder, termed a
|
* applies to in the initial part of the file handle. The remainder, termed
|
||||||
* file handle fragment, is controlled completely by the filesystem.
|
* a file handle fragment, is controlled completely by the filesystem. The
|
||||||
* The standard helper routines assume that this fragment will contain one or two
|
* standard helper routines assume that this fragment will contain one or
|
||||||
* sub-fragments, one which identifies the file, and one which may be used to
|
* two sub-fragments, one which identifies the file, and one which may be
|
||||||
* identify the (a) directory containing the file.
|
* used to identify the (a) directory containing the file.
|
||||||
*
|
*
|
||||||
* In some situations, nfsd needs to get a dentry which is connected into a
|
* In some situations, nfsd needs to get a dentry which is connected into a
|
||||||
* specific part of the file tree. To allow for this, it passes the function
|
* specific part of the file tree. To allow for this, it passes the
|
||||||
* acceptable() together with a @context which can be used to see if the dentry
|
* function acceptable() together with a @context which can be used to see
|
||||||
* is acceptable. As there can be multiple dentrys for a given file, the filesystem
|
* if the dentry is acceptable. As there can be multiple dentrys for a
|
||||||
* should check each one for acceptability before looking for the next. As soon
|
* given file, the filesystem should check each one for acceptability before
|
||||||
* as an acceptable one is found, it should be returned.
|
* looking for the next. As soon as an acceptable one is found, it should
|
||||||
|
* be returned.
|
||||||
*
|
*
|
||||||
* decode_fh:
|
* decode_fh:
|
||||||
* @decode_fh is given a &struct super_block (@sb), a file handle fragment (@fh, @fh_len)
|
* @decode_fh is given a &struct super_block (@sb), a file handle fragment
|
||||||
* and an acceptability testing function (@acceptable, @context). It should return
|
* (@fh, @fh_len) and an acceptability testing function (@acceptable,
|
||||||
* a &struct dentry which refers to the same file that the file handle fragment refers
|
* @context). It should return a &struct dentry which refers to the same
|
||||||
* to, and which passes the acceptability test. If it cannot, it should return
|
* file that the file handle fragment refers to, and which passes the
|
||||||
* a %NULL pointer if the file was found but no acceptable &dentries were available, or
|
* acceptability test. If it cannot, it should return a %NULL pointer if
|
||||||
* a %ERR_PTR error code indicating why it couldn't be found (e.g. %ENOENT or %ENOMEM).
|
* the file was found but no acceptable &dentries were available, or a
|
||||||
|
* %ERR_PTR error code indicating why it couldn't be found (e.g. %ENOENT or
|
||||||
|
* %ENOMEM).
|
||||||
*
|
*
|
||||||
* encode_fh:
|
* encode_fh:
|
||||||
* @encode_fh should store in the file handle fragment @fh (using at most @max_len bytes)
|
* @encode_fh should store in the file handle fragment @fh (using at most
|
||||||
* information that can be used by @decode_fh to recover the file refered to by the
|
* @max_len bytes) information that can be used by @decode_fh to recover the
|
||||||
* &struct dentry @de. If the @connectable flag is set, the encode_fh() should store
|
* file refered to by the &struct dentry @de. If the @connectable flag is
|
||||||
* sufficient information so that a good attempt can be made to find not only
|
* set, the encode_fh() should store sufficient information so that a good
|
||||||
* the file but also it's place in the filesystem. This typically means storing
|
* attempt can be made to find not only the file but also it's place in the
|
||||||
* a reference to de->d_parent in the filehandle fragment.
|
* filesystem. This typically means storing a reference to de->d_parent in
|
||||||
* encode_fh() should return the number of bytes stored or a negative error code
|
* the filehandle fragment. encode_fh() should return the number of bytes
|
||||||
* such as %-ENOSPC
|
* stored or a negative error code such as %-ENOSPC
|
||||||
*
|
*
|
||||||
* get_name:
|
* get_name:
|
||||||
* @get_name should find a name for the given @child in the given @parent directory.
|
* @get_name should find a name for the given @child in the given @parent
|
||||||
* The name should be stored in the @name (with the understanding that it is already
|
* directory. The name should be stored in the @name (with the
|
||||||
* pointing to a a %NAME_MAX+1 sized buffer. get_name() should return %0 on success,
|
* understanding that it is already pointing to a a %NAME_MAX+1 sized
|
||||||
* a negative error code or error.
|
* buffer. get_name() should return %0 on success, a negative error code
|
||||||
* @get_name will be called without @parent->i_sem held.
|
* or error. @get_name will be called without @parent->i_sem held.
|
||||||
*
|
*
|
||||||
* get_parent:
|
* get_parent:
|
||||||
* @get_parent should find the parent directory for the given @child which is also
|
* @get_parent should find the parent directory for the given @child which
|
||||||
* a directory. In the event that it cannot be found, or storage space cannot be
|
* is also a directory. In the event that it cannot be found, or storage
|
||||||
* allocated, a %ERR_PTR should be returned.
|
* space cannot be allocated, a %ERR_PTR should be returned.
|
||||||
*
|
*
|
||||||
* get_dentry:
|
* get_dentry:
|
||||||
* Given a &super_block (@sb) and a pointer to a file-system specific inode identifier,
|
* Given a &super_block (@sb) and a pointer to a file-system specific inode
|
||||||
* possibly an inode number, (@inump) get_dentry() should find the identified inode and
|
* identifier, possibly an inode number, (@inump) get_dentry() should find
|
||||||
* return a dentry for that inode.
|
* the identified inode and return a dentry for that inode. Any suitable
|
||||||
* Any suitable dentry can be returned including, if necessary, a new dentry created
|
* dentry can be returned including, if necessary, a new dentry created with
|
||||||
* with d_alloc_root. The caller can then find any other extant dentrys by following the
|
* d_alloc_root. The caller can then find any other extant dentrys by
|
||||||
* d_alias links. If a new dentry was created using d_alloc_root, DCACHE_NFSD_DISCONNECTED
|
* following the d_alias links. If a new dentry was created using
|
||||||
* should be set, and the dentry should be d_rehash()ed.
|
* d_alloc_root, DCACHE_NFSD_DISCONNECTED should be set, and the dentry
|
||||||
|
* should be d_rehash()ed.
|
||||||
*
|
*
|
||||||
* If the inode cannot be found, either a %NULL pointer or an %ERR_PTR code can be returned.
|
* If the inode cannot be found, either a %NULL pointer or an %ERR_PTR code
|
||||||
* The @inump will be whatever was passed to nfsd_find_fh_dentry() in either the
|
* can be returned. The @inump will be whatever was passed to
|
||||||
* @obj or @parent parameters.
|
* nfsd_find_fh_dentry() in either the @obj or @parent parameters.
|
||||||
*
|
*
|
||||||
* Locking rules:
|
* Locking rules:
|
||||||
* get_parent is called with child->d_inode->i_sem down
|
* get_parent is called with child->d_inode->i_sem down
|
||||||
* get_name is not (which is possibly inconsistent)
|
* get_name is not (which is possibly inconsistent)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct export_operations {
|
struct export_operations {
|
||||||
|
|
|
@ -167,13 +167,14 @@ struct skb_shared_info {
|
||||||
* @h: Transport layer header
|
* @h: Transport layer header
|
||||||
* @nh: Network layer header
|
* @nh: Network layer header
|
||||||
* @mac: Link layer header
|
* @mac: Link layer header
|
||||||
* @dst: FIXME: Describe this field
|
* @dst: destination entry
|
||||||
|
* @sp: the security path, used for xfrm
|
||||||
* @cb: Control buffer. Free for use by every layer. Put private vars here
|
* @cb: Control buffer. Free for use by every layer. Put private vars here
|
||||||
* @len: Length of actual data
|
* @len: Length of actual data
|
||||||
* @data_len: Data length
|
* @data_len: Data length
|
||||||
* @mac_len: Length of link layer header
|
* @mac_len: Length of link layer header
|
||||||
* @csum: Checksum
|
* @csum: Checksum
|
||||||
* @__unused: Dead field, may be reused
|
* @local_df: allow local fragmentation
|
||||||
* @cloned: Head may be cloned (check refcnt to be sure)
|
* @cloned: Head may be cloned (check refcnt to be sure)
|
||||||
* @nohdr: Payload reference only, must not modify header
|
* @nohdr: Payload reference only, must not modify header
|
||||||
* @pkt_type: Packet class
|
* @pkt_type: Packet class
|
||||||
|
|
|
@ -161,6 +161,7 @@ struct sock_common {
|
||||||
* @sk_sndmsg_page: cached page for sendmsg
|
* @sk_sndmsg_page: cached page for sendmsg
|
||||||
* @sk_sndmsg_off: cached offset for sendmsg
|
* @sk_sndmsg_off: cached offset for sendmsg
|
||||||
* @sk_send_head: front of stuff to transmit
|
* @sk_send_head: front of stuff to transmit
|
||||||
|
* @sk_security: used by security modules
|
||||||
* @sk_write_pending: a write to stream socket waits to start
|
* @sk_write_pending: a write to stream socket waits to start
|
||||||
* @sk_state_change: callback to indicate change in the state of the sock
|
* @sk_state_change: callback to indicate change in the state of the sock
|
||||||
* @sk_data_ready: callback to indicate there is data to be processed
|
* @sk_data_ready: callback to indicate there is data to be processed
|
||||||
|
|
|
@ -2906,6 +2906,7 @@ static void __wake_up_common(wait_queue_head_t *q, unsigned int mode,
|
||||||
* @q: the waitqueue
|
* @q: the waitqueue
|
||||||
* @mode: which threads
|
* @mode: which threads
|
||||||
* @nr_exclusive: how many wake-one or wake-many threads to wake up
|
* @nr_exclusive: how many wake-one or wake-many threads to wake up
|
||||||
|
* @key: is directly passed to the wakeup function
|
||||||
*/
|
*/
|
||||||
void fastcall __wake_up(wait_queue_head_t *q, unsigned int mode,
|
void fastcall __wake_up(wait_queue_head_t *q, unsigned int mode,
|
||||||
int nr_exclusive, void *key)
|
int nr_exclusive, void *key)
|
||||||
|
@ -2928,7 +2929,7 @@ void fastcall __wake_up_locked(wait_queue_head_t *q, unsigned int mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __wake_up - sync- wake up threads blocked on a waitqueue.
|
* __wake_up_sync - wake up threads blocked on a waitqueue.
|
||||||
* @q: the waitqueue
|
* @q: the waitqueue
|
||||||
* @mode: which threads
|
* @mode: which threads
|
||||||
* @nr_exclusive: how many wake-one or wake-many threads to wake up
|
* @nr_exclusive: how many wake-one or wake-many threads to wake up
|
||||||
|
|
|
@ -1991,6 +1991,8 @@ int proc_dointvec_userhz_jiffies(ctl_table *table, int write, struct file *filp,
|
||||||
* @filp: the file structure
|
* @filp: the file structure
|
||||||
* @buffer: the user buffer
|
* @buffer: the user buffer
|
||||||
* @lenp: the size of the user buffer
|
* @lenp: the size of the user buffer
|
||||||
|
* @ppos: file position
|
||||||
|
* @ppos: the current position in the file
|
||||||
*
|
*
|
||||||
* Reads/writes up to table->maxlen/sizeof(unsigned int) integer
|
* Reads/writes up to table->maxlen/sizeof(unsigned int) integer
|
||||||
* values from/to the user buffer, treated as an ASCII string.
|
* values from/to the user buffer, treated as an ASCII string.
|
||||||
|
|
|
@ -216,13 +216,12 @@ int kobject_register(struct kobject * kobj)
|
||||||
/**
|
/**
|
||||||
* kobject_set_name - Set the name of an object
|
* kobject_set_name - Set the name of an object
|
||||||
* @kobj: object.
|
* @kobj: object.
|
||||||
* @name: name.
|
* @fmt: format string used to build the name
|
||||||
*
|
*
|
||||||
* If strlen(name) >= KOBJ_NAME_LEN, then use a dynamically allocated
|
* If strlen(name) >= KOBJ_NAME_LEN, then use a dynamically allocated
|
||||||
* string that @kobj->k_name points to. Otherwise, use the static
|
* string that @kobj->k_name points to. Otherwise, use the static
|
||||||
* @kobj->name array.
|
* @kobj->name array.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int kobject_set_name(struct kobject * kobj, const char * fmt, ...)
|
int kobject_set_name(struct kobject * kobj, const char * fmt, ...)
|
||||||
{
|
{
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
17
mm/filemap.c
17
mm/filemap.c
|
@ -169,9 +169,10 @@ static int sync_page(void *word)
|
||||||
/**
|
/**
|
||||||
* filemap_fdatawrite_range - start writeback against all of a mapping's
|
* filemap_fdatawrite_range - start writeback against all of a mapping's
|
||||||
* dirty pages that lie within the byte offsets <start, end>
|
* dirty pages that lie within the byte offsets <start, end>
|
||||||
* @mapping: address space structure to write
|
* @mapping: address space structure to write
|
||||||
* @start: offset in bytes where the range starts
|
* @start: offset in bytes where the range starts
|
||||||
* @end : offset in bytes where the range ends
|
* @end: offset in bytes where the range ends
|
||||||
|
* @sync_mode: enable synchronous operation
|
||||||
*
|
*
|
||||||
* If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
|
* If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
|
||||||
* opposed to a regular memory * cleansing writeback. The difference between
|
* opposed to a regular memory * cleansing writeback. The difference between
|
||||||
|
@ -535,8 +536,8 @@ EXPORT_SYMBOL(find_trylock_page);
|
||||||
/**
|
/**
|
||||||
* find_lock_page - locate, pin and lock a pagecache page
|
* find_lock_page - locate, pin and lock a pagecache page
|
||||||
*
|
*
|
||||||
* @mapping - the address_space to search
|
* @mapping: the address_space to search
|
||||||
* @offset - the page index
|
* @offset: the page index
|
||||||
*
|
*
|
||||||
* Locates the desired pagecache page, locks it, increments its reference
|
* Locates the desired pagecache page, locks it, increments its reference
|
||||||
* count and returns its address.
|
* count and returns its address.
|
||||||
|
@ -575,9 +576,9 @@ EXPORT_SYMBOL(find_lock_page);
|
||||||
/**
|
/**
|
||||||
* find_or_create_page - locate or add a pagecache page
|
* find_or_create_page - locate or add a pagecache page
|
||||||
*
|
*
|
||||||
* @mapping - the page's address_space
|
* @mapping: the page's address_space
|
||||||
* @index - the page's index into the mapping
|
* @index: the page's index into the mapping
|
||||||
* @gfp_mask - page allocation mode
|
* @gfp_mask: page allocation mode
|
||||||
*
|
*
|
||||||
* Locates a page in the pagecache. If the page is not present, a new page
|
* Locates a page in the pagecache. If the page is not present, a new page
|
||||||
* is allocated using @gfp_mask and is added to the pagecache and to the VM's
|
* is allocated using @gfp_mask and is added to the pagecache and to the VM's
|
||||||
|
|
|
@ -255,7 +255,7 @@ static void balance_dirty_pages(struct address_space *mapping)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* balance_dirty_pages_ratelimited - balance dirty memory state
|
* balance_dirty_pages_ratelimited - balance dirty memory state
|
||||||
* @mapping - address_space which was dirtied
|
* @mapping: address_space which was dirtied
|
||||||
*
|
*
|
||||||
* Processes which are dirtying memory should call in here once for each page
|
* Processes which are dirtying memory should call in here once for each page
|
||||||
* which was newly dirtied. The function will periodically check the system's
|
* which was newly dirtied. The function will periodically check the system's
|
||||||
|
@ -562,8 +562,8 @@ int do_writepages(struct address_space *mapping, struct writeback_control *wbc)
|
||||||
/**
|
/**
|
||||||
* write_one_page - write out a single page and optionally wait on I/O
|
* write_one_page - write out a single page and optionally wait on I/O
|
||||||
*
|
*
|
||||||
* @page - the page to write
|
* @page: the page to write
|
||||||
* @wait - if true, wait on writeout
|
* @wait: if true, wait on writeout
|
||||||
*
|
*
|
||||||
* The page must be locked by the caller and will be unlocked upon return.
|
* The page must be locked by the caller and will be unlocked upon return.
|
||||||
*
|
*
|
||||||
|
|
|
@ -242,7 +242,7 @@ EXPORT_SYMBOL(invalidate_inode_pages);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* invalidate_inode_pages2_range - remove range of pages from an address_space
|
* invalidate_inode_pages2_range - remove range of pages from an address_space
|
||||||
* @mapping - the address_space
|
* @mapping: the address_space
|
||||||
* @start: the page offset 'from' which to invalidate
|
* @start: the page offset 'from' which to invalidate
|
||||||
* @end: the page offset 'to' which to invalidate (inclusive)
|
* @end: the page offset 'to' which to invalidate (inclusive)
|
||||||
*
|
*
|
||||||
|
@ -322,7 +322,7 @@ EXPORT_SYMBOL_GPL(invalidate_inode_pages2_range);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* invalidate_inode_pages2 - remove all pages from an address_space
|
* invalidate_inode_pages2 - remove all pages from an address_space
|
||||||
* @mapping - the address_space
|
* @mapping: the address_space
|
||||||
*
|
*
|
||||||
* Any pages which are found to be mapped into pagetables are unmapped prior to
|
* Any pages which are found to be mapped into pagetables are unmapped prior to
|
||||||
* invalidation.
|
* invalidation.
|
||||||
|
|
|
@ -203,7 +203,7 @@ void skb_free_datagram(struct sock *sk, struct sk_buff *skb)
|
||||||
* skb_copy_datagram_iovec - Copy a datagram to an iovec.
|
* skb_copy_datagram_iovec - Copy a datagram to an iovec.
|
||||||
* @skb: buffer to copy
|
* @skb: buffer to copy
|
||||||
* @offset: offset in the buffer to start copying from
|
* @offset: offset in the buffer to start copying from
|
||||||
* @iovec: io vector to copy to
|
* @to: io vector to copy to
|
||||||
* @len: amount of data to copy from buffer to iovec
|
* @len: amount of data to copy from buffer to iovec
|
||||||
*
|
*
|
||||||
* Note: the iovec is modified during the copy.
|
* Note: the iovec is modified during the copy.
|
||||||
|
@ -379,7 +379,7 @@ static int skb_copy_and_csum_datagram(const struct sk_buff *skb, int offset,
|
||||||
* skb_copy_and_csum_datagram_iovec - Copy and checkum skb to user iovec.
|
* skb_copy_and_csum_datagram_iovec - Copy and checkum skb to user iovec.
|
||||||
* @skb: skbuff
|
* @skb: skbuff
|
||||||
* @hlen: hardware length
|
* @hlen: hardware length
|
||||||
* @iovec: io vector
|
* @iov: io vector
|
||||||
*
|
*
|
||||||
* Caller _must_ check that skb will fit to this iovec.
|
* Caller _must_ check that skb will fit to this iovec.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue