gfs2: Fix a number of kernel-doc warnings
Building the kernel with W=1 results in a number of kernel-doc warnings like incorrect function names and parameter descriptions. Fix those, mostly by adding missing parameter descriptions, removing left-over descriptions, and demoting some less important kernel-doc comments into regular comments. Originally proposed by Lee Jones; improved and combined into a single patch by Andreas. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
a4122a95ce
commit
c551f66c5d
|
@ -540,10 +540,7 @@ int gfs2_internal_read(struct gfs2_inode *ip, char *buf, loff_t *pos,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_readahead - Read a bunch of pages at once
|
* gfs2_readahead - Read a bunch of pages at once
|
||||||
* @file: The file to read from
|
* @rac: Read-ahead control structure
|
||||||
* @mapping: Address space info
|
|
||||||
* @pages: List of pages to read
|
|
||||||
* @nr_pages: Number of pages to read
|
|
||||||
*
|
*
|
||||||
* Some notes:
|
* Some notes:
|
||||||
* 1. This is only for readahead, so we can simply ignore any things
|
* 1. This is only for readahead, so we can simply ignore any things
|
||||||
|
|
|
@ -1479,7 +1479,7 @@ int gfs2_iomap_alloc(struct inode *inode, loff_t pos, loff_t length,
|
||||||
/**
|
/**
|
||||||
* sweep_bh_for_rgrps - find an rgrp in a meta buffer and free blocks therein
|
* sweep_bh_for_rgrps - find an rgrp in a meta buffer and free blocks therein
|
||||||
* @ip: inode
|
* @ip: inode
|
||||||
* @rg_gh: holder of resource group glock
|
* @rd_gh: holder of resource group glock
|
||||||
* @bh: buffer head to sweep
|
* @bh: buffer head to sweep
|
||||||
* @start: starting point in bh
|
* @start: starting point in bh
|
||||||
* @end: end point in bh
|
* @end: end point in bh
|
||||||
|
@ -1660,8 +1660,11 @@ static bool mp_eq_to_hgt(struct metapath *mp, __u16 *list, unsigned int h)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* find_nonnull_ptr - find a non-null pointer given a metapath and height
|
* find_nonnull_ptr - find a non-null pointer given a metapath and height
|
||||||
|
* @sdp: The superblock
|
||||||
* @mp: starting metapath
|
* @mp: starting metapath
|
||||||
* @h: desired height to search
|
* @h: desired height to search
|
||||||
|
* @end_list: See punch_hole().
|
||||||
|
* @end_aligned: See punch_hole().
|
||||||
*
|
*
|
||||||
* Assumes the metapath is valid (with buffers) out to height h.
|
* Assumes the metapath is valid (with buffers) out to height h.
|
||||||
* Returns: true if a non-null pointer was found in the metapath buffer
|
* Returns: true if a non-null pointer was found in the metapath buffer
|
||||||
|
|
|
@ -118,8 +118,8 @@ static int gfs2_readdir(struct file *file, struct dir_context *ctx)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* fsflag_gfs2flag
|
* struct fsflag_gfs2flag
|
||||||
*
|
*
|
||||||
* The FS_JOURNAL_DATA_FL flag maps to GFS2_DIF_INHERIT_JDATA for directories,
|
* The FS_JOURNAL_DATA_FL flag maps to GFS2_DIF_INHERIT_JDATA for directories,
|
||||||
* and to GFS2_DIF_JDATA for non-directories.
|
* and to GFS2_DIF_JDATA for non-directories.
|
||||||
|
@ -435,7 +435,6 @@ static int gfs2_allocate_page_backing(struct page *page, unsigned int length)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_page_mkwrite - Make a shared, mmap()ed, page writable
|
* gfs2_page_mkwrite - Make a shared, mmap()ed, page writable
|
||||||
* @vma: The virtual memory area
|
|
||||||
* @vmf: The virtual memory fault containing the page to become writable
|
* @vmf: The virtual memory fault containing the page to become writable
|
||||||
*
|
*
|
||||||
* When the page becomes writable, we need to ensure that we have
|
* When the page becomes writable, we need to ensure that we have
|
||||||
|
@ -586,7 +585,7 @@ static const struct vm_operations_struct gfs2_vm_ops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_mmap -
|
* gfs2_mmap
|
||||||
* @file: The file to map
|
* @file: The file to map
|
||||||
* @vma: The VMA which described the mapping
|
* @vma: The VMA which described the mapping
|
||||||
*
|
*
|
||||||
|
|
|
@ -359,7 +359,8 @@ static void gfs2_holder_wake(struct gfs2_holder *gh)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* do_error - Something unexpected has happened during a lock request
|
* do_error - Something unexpected has happened during a lock request
|
||||||
*
|
* @gl: The glock
|
||||||
|
* @ret: The status from the DLM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void do_error(struct gfs2_glock *gl, const int ret)
|
static void do_error(struct gfs2_glock *gl, const int ret)
|
||||||
|
@ -454,8 +455,7 @@ static inline struct gfs2_holder *find_first_waiter(const struct gfs2_glock *gl)
|
||||||
/**
|
/**
|
||||||
* state_change - record that the glock is now in a different state
|
* state_change - record that the glock is now in a different state
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
* @new_state the new state
|
* @new_state: the new state
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void state_change(struct gfs2_glock *gl, unsigned int new_state)
|
static void state_change(struct gfs2_glock *gl, unsigned int new_state)
|
||||||
|
@ -1268,6 +1268,8 @@ wait_for_dlm:
|
||||||
* handle_callback - process a demote request
|
* handle_callback - process a demote request
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
* @state: the state the caller wants us to change to
|
* @state: the state the caller wants us to change to
|
||||||
|
* @delay: zero to demote immediately; otherwise pending demote
|
||||||
|
* @remote: true if this came from a different cluster node
|
||||||
*
|
*
|
||||||
* There are only two requests that we are going to see in actual
|
* There are only two requests that we are going to see in actual
|
||||||
* practise: LM_ST_SHARED and LM_ST_UNLOCKED
|
* practise: LM_ST_SHARED and LM_ST_UNLOCKED
|
||||||
|
@ -1569,6 +1571,7 @@ static int glock_compare(const void *arg_a, const void *arg_b)
|
||||||
* nq_m_sync - synchonously acquire more than one glock in deadlock free order
|
* nq_m_sync - synchonously acquire more than one glock in deadlock free order
|
||||||
* @num_gh: the number of structures
|
* @num_gh: the number of structures
|
||||||
* @ghs: an array of struct gfs2_holder structures
|
* @ghs: an array of struct gfs2_holder structures
|
||||||
|
* @p: placeholder for the holder structure to pass back
|
||||||
*
|
*
|
||||||
* Returns: 0 on success (all glocks acquired),
|
* Returns: 0 on success (all glocks acquired),
|
||||||
* errno on failure (no glocks acquired)
|
* errno on failure (no glocks acquired)
|
||||||
|
@ -1985,7 +1988,6 @@ static void dump_glock_func(struct gfs2_glock *gl)
|
||||||
/**
|
/**
|
||||||
* gfs2_gl_hash_clear - Empty out the glock hash table
|
* gfs2_gl_hash_clear - Empty out the glock hash table
|
||||||
* @sdp: the filesystem
|
* @sdp: the filesystem
|
||||||
* @wait: wait until it's all gone
|
|
||||||
*
|
*
|
||||||
* Called when unmounting the filesystem.
|
* Called when unmounting the filesystem.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -49,6 +49,7 @@ static void gfs2_ail_error(struct gfs2_glock *gl, const struct buffer_head *bh)
|
||||||
* __gfs2_ail_flush - remove all buffers for a given lock from the AIL
|
* __gfs2_ail_flush - remove all buffers for a given lock from the AIL
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
* @fsync: set when called from fsync (not all buffers will be clean)
|
* @fsync: set when called from fsync (not all buffers will be clean)
|
||||||
|
* @nr_revokes: Number of buffers to revoke
|
||||||
*
|
*
|
||||||
* None of the buffers should be dirty, locked, or pinned.
|
* None of the buffers should be dirty, locked, or pinned.
|
||||||
*/
|
*/
|
||||||
|
@ -474,8 +475,7 @@ int gfs2_inode_refresh(struct gfs2_inode *ip)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* inode_go_lock - operation done after an inode lock is locked by a process
|
* inode_go_lock - operation done after an inode lock is locked by a process
|
||||||
* @gl: the glock
|
* @gh: The glock holder
|
||||||
* @flags:
|
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
@ -516,7 +516,7 @@ static int inode_go_lock(struct gfs2_holder *gh)
|
||||||
/**
|
/**
|
||||||
* inode_go_dump - print information about an inode
|
* inode_go_dump - print information about an inode
|
||||||
* @seq: The iterator
|
* @seq: The iterator
|
||||||
* @ip: the inode
|
* @gl: The glock
|
||||||
* @fs_id_buf: file system id (may be empty)
|
* @fs_id_buf: file system id (may be empty)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -547,9 +547,6 @@ static void inode_go_dump(struct seq_file *seq, struct gfs2_glock *gl,
|
||||||
/**
|
/**
|
||||||
* freeze_go_sync - promote/demote the freeze glock
|
* freeze_go_sync - promote/demote the freeze glock
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
* @state: the requested state
|
|
||||||
* @flags:
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int freeze_go_sync(struct gfs2_glock *gl)
|
static int freeze_go_sync(struct gfs2_glock *gl)
|
||||||
|
@ -594,9 +591,7 @@ static int freeze_go_sync(struct gfs2_glock *gl)
|
||||||
/**
|
/**
|
||||||
* freeze_go_xmote_bh - After promoting/demoting the freeze glock
|
* freeze_go_xmote_bh - After promoting/demoting the freeze glock
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int freeze_go_xmote_bh(struct gfs2_glock *gl)
|
static int freeze_go_xmote_bh(struct gfs2_glock *gl)
|
||||||
{
|
{
|
||||||
struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;
|
struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;
|
||||||
|
@ -624,7 +619,7 @@ static int freeze_go_xmote_bh(struct gfs2_glock *gl)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trans_go_demote_ok
|
* freeze_go_demote_ok
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
*
|
*
|
||||||
* Always returns 0
|
* Always returns 0
|
||||||
|
@ -638,6 +633,7 @@ static int freeze_go_demote_ok(const struct gfs2_glock *gl)
|
||||||
/**
|
/**
|
||||||
* iopen_go_callback - schedule the dcache entry for the inode to be deleted
|
* iopen_go_callback - schedule the dcache entry for the inode to be deleted
|
||||||
* @gl: the glock
|
* @gl: the glock
|
||||||
|
* @remote: true if this came from a different cluster node
|
||||||
*
|
*
|
||||||
* gl_lockref.lock lock is held while calling this
|
* gl_lockref.lock lock is held while calling this
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -285,10 +285,9 @@ struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_lookupi - Look up a filename in a directory and return its inode
|
* gfs2_lookupi - Look up a filename in a directory and return its inode
|
||||||
* @d_gh: An initialized holder for the directory glock
|
* @dir: The inode of the directory containing the inode to look-up
|
||||||
* @name: The name of the inode to look for
|
* @name: The name of the inode to look for
|
||||||
* @is_root: If 1, ignore the caller's permissions
|
* @is_root: If 1, ignore the caller's permissions
|
||||||
* @i_gh: An uninitialized holder for the new inode glock
|
|
||||||
*
|
*
|
||||||
* This can be called via the VFS filldir function when NFS is doing
|
* This can be called via the VFS filldir function when NFS is doing
|
||||||
* a readdirplus and the inode which its intending to stat isn't
|
* a readdirplus and the inode which its intending to stat isn't
|
||||||
|
@ -476,7 +475,6 @@ static void gfs2_init_xattr(struct gfs2_inode *ip)
|
||||||
* @dip: The directory this inode is being created in
|
* @dip: The directory this inode is being created in
|
||||||
* @ip: The inode
|
* @ip: The inode
|
||||||
* @symname: The symlink destination (if a symlink)
|
* @symname: The symlink destination (if a symlink)
|
||||||
* @bhp: The buffer head (returned to caller)
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -514,7 +512,7 @@ static void init_dinode(struct gfs2_inode *dip, struct gfs2_inode *ip,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_trans_da_blocks - Calculate number of blocks to link inode
|
* gfs2_trans_da_blks - Calculate number of blocks to link inode
|
||||||
* @dip: The directory we are linking into
|
* @dip: The directory we are linking into
|
||||||
* @da: The dir add information
|
* @da: The dir add information
|
||||||
* @nr_inodes: The number of inodes involved
|
* @nr_inodes: The number of inodes involved
|
||||||
|
@ -595,6 +593,7 @@ static int gfs2_initxattrs(struct inode *inode, const struct xattr *xattr_array,
|
||||||
* @dev: For device nodes, this is the device number
|
* @dev: For device nodes, this is the device number
|
||||||
* @symname: For symlinks, this is the link destination
|
* @symname: For symlinks, this is the link destination
|
||||||
* @size: The initial size of the inode (ignored for directories)
|
* @size: The initial size of the inode (ignored for directories)
|
||||||
|
* @excl: Force fail if inode exists
|
||||||
*
|
*
|
||||||
* Returns: 0 on success, or error code
|
* Returns: 0 on success, or error code
|
||||||
*/
|
*/
|
||||||
|
@ -837,9 +836,11 @@ fail:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_create - Create a file
|
* gfs2_create - Create a file
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @dir: The directory in which to create the file
|
* @dir: The directory in which to create the file
|
||||||
* @dentry: The dentry of the new file
|
* @dentry: The dentry of the new file
|
||||||
* @mode: The mode of the new file
|
* @mode: The mode of the new file
|
||||||
|
* @excl: Force fail if inode exists
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
@ -1080,8 +1081,7 @@ static int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
|
||||||
/**
|
/**
|
||||||
* gfs2_unlink_inode - Removes an inode from its parent dir and unlinks it
|
* gfs2_unlink_inode - Removes an inode from its parent dir and unlinks it
|
||||||
* @dip: The parent directory
|
* @dip: The parent directory
|
||||||
* @name: The name of the entry in the parent directory
|
* @dentry: The dentry to unlink
|
||||||
* @inode: The inode to be removed
|
|
||||||
*
|
*
|
||||||
* Called with all the locks and in a transaction. This will only be
|
* Called with all the locks and in a transaction. This will only be
|
||||||
* called for a directory after it has been checked to ensure it is empty.
|
* called for a directory after it has been checked to ensure it is empty.
|
||||||
|
@ -1199,6 +1199,7 @@ out_inodes:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_symlink - Create a symlink
|
* gfs2_symlink - Create a symlink
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @dir: The directory to create the symlink in
|
* @dir: The directory to create the symlink in
|
||||||
* @dentry: The dentry to put the symlink in
|
* @dentry: The dentry to put the symlink in
|
||||||
* @symname: The thing which the link points to
|
* @symname: The thing which the link points to
|
||||||
|
@ -1220,6 +1221,7 @@ static int gfs2_symlink(struct user_namespace *mnt_userns, struct inode *dir,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_mkdir - Make a directory
|
* gfs2_mkdir - Make a directory
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @dir: The parent directory of the new one
|
* @dir: The parent directory of the new one
|
||||||
* @dentry: The dentry of the new directory
|
* @dentry: The dentry of the new directory
|
||||||
* @mode: The mode of the new directory
|
* @mode: The mode of the new directory
|
||||||
|
@ -1236,6 +1238,7 @@ static int gfs2_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_mknod - Make a special file
|
* gfs2_mknod - Make a special file
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @dir: The directory in which the special file will reside
|
* @dir: The directory in which the special file will reside
|
||||||
* @dentry: The dentry of the special file
|
* @dentry: The dentry of the special file
|
||||||
* @mode: The mode of the special file
|
* @mode: The mode of the special file
|
||||||
|
@ -1828,10 +1831,10 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_permission -
|
* gfs2_permission
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @inode: The inode
|
* @inode: The inode
|
||||||
* @mask: The mask to be tested
|
* @mask: The mask to be tested
|
||||||
* @flags: Indicates whether this is an RCU path walk or not
|
|
||||||
*
|
*
|
||||||
* This may be called from the VFS directly, or from within GFS2 with the
|
* This may be called from the VFS directly, or from within GFS2 with the
|
||||||
* inode locked, so we look to see if the glock is already locked and only
|
* inode locked, so we look to see if the glock is already locked and only
|
||||||
|
@ -1874,14 +1877,6 @@ static int __gfs2_setattr_simple(struct inode *inode, struct iattr *attr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gfs2_setattr_simple -
|
|
||||||
* @ip:
|
|
||||||
* @attr:
|
|
||||||
*
|
|
||||||
* Returns: errno
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int gfs2_setattr_simple(struct inode *inode, struct iattr *attr)
|
static int gfs2_setattr_simple(struct inode *inode, struct iattr *attr)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
@ -1962,6 +1957,7 @@ out:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_setattr - Change attributes on an inode
|
* gfs2_setattr - Change attributes on an inode
|
||||||
|
* @mnt_userns: User namespace of the mount the inode was found from
|
||||||
* @dentry: The dentry which is changing
|
* @dentry: The dentry which is changing
|
||||||
* @attr: The structure describing the change
|
* @attr: The structure describing the change
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,28 +24,31 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_update_stats - Update time based stats
|
* gfs2_update_stats - Update time based stats
|
||||||
* @mv: Pointer to mean/variance structure to update
|
* @s: The stats to update (local or global)
|
||||||
|
* @index: The index inside @s
|
||||||
* @sample: New data to include
|
* @sample: New data to include
|
||||||
*
|
|
||||||
* @delta is the difference between the current rtt sample and the
|
|
||||||
* running average srtt. We add 1/8 of that to the srtt in order to
|
|
||||||
* update the current srtt estimate. The variance estimate is a bit
|
|
||||||
* more complicated. We subtract the current variance estimate from
|
|
||||||
* the abs value of the @delta and add 1/4 of that to the running
|
|
||||||
* total. That's equivalent to 3/4 of the current variance
|
|
||||||
* estimate plus 1/4 of the abs of @delta.
|
|
||||||
*
|
|
||||||
* Note that the index points at the array entry containing the smoothed
|
|
||||||
* mean value, and the variance is always in the following entry
|
|
||||||
*
|
|
||||||
* Reference: TCP/IP Illustrated, vol 2, p. 831,832
|
|
||||||
* All times are in units of integer nanoseconds. Unlike the TCP/IP case,
|
|
||||||
* they are not scaled fixed point.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void gfs2_update_stats(struct gfs2_lkstats *s, unsigned index,
|
static inline void gfs2_update_stats(struct gfs2_lkstats *s, unsigned index,
|
||||||
s64 sample)
|
s64 sample)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* @delta is the difference between the current rtt sample and the
|
||||||
|
* running average srtt. We add 1/8 of that to the srtt in order to
|
||||||
|
* update the current srtt estimate. The variance estimate is a bit
|
||||||
|
* more complicated. We subtract the current variance estimate from
|
||||||
|
* the abs value of the @delta and add 1/4 of that to the running
|
||||||
|
* total. That's equivalent to 3/4 of the current variance
|
||||||
|
* estimate plus 1/4 of the abs of @delta.
|
||||||
|
*
|
||||||
|
* Note that the index points at the array entry containing the
|
||||||
|
* smoothed mean value, and the variance is always in the following
|
||||||
|
* entry
|
||||||
|
*
|
||||||
|
* Reference: TCP/IP Illustrated, vol 2, p. 831,832
|
||||||
|
* All times are in units of integer nanoseconds. Unlike the TCP/IP
|
||||||
|
* case, they are not scaled fixed point.
|
||||||
|
*/
|
||||||
|
|
||||||
s64 delta = sample - s->stats[index];
|
s64 delta = sample - s->stats[index];
|
||||||
s->stats[index] += (delta >> 3);
|
s->stats[index] += (delta >> 3);
|
||||||
index++;
|
index++;
|
||||||
|
|
|
@ -65,7 +65,6 @@ unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_remove_from_ail - Remove an entry from the ail lists, updating counters
|
* gfs2_remove_from_ail - Remove an entry from the ail lists, updating counters
|
||||||
* @mapping: The associated mapping (maybe NULL)
|
|
||||||
* @bd: The gfs2_bufdata to remove
|
* @bd: The gfs2_bufdata to remove
|
||||||
*
|
*
|
||||||
* The ail lock _must_ be held when calling this function
|
* The ail lock _must_ be held when calling this function
|
||||||
|
@ -82,11 +81,11 @@ void gfs2_remove_from_ail(struct gfs2_bufdata *bd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_ail1_start_one - Start I/O on a part of the AIL
|
* gfs2_ail1_start_one - Start I/O on a transaction
|
||||||
* @sdp: the filesystem
|
* @sdp: The superblock
|
||||||
* @wbc: The writeback control structure
|
* @wbc: The writeback control structure
|
||||||
* @ai: The ail structure
|
* @tr: The transaction to start I/O on
|
||||||
*
|
* @plug: The block plug currently active
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int gfs2_ail1_start_one(struct gfs2_sbd *sdp,
|
static int gfs2_ail1_start_one(struct gfs2_sbd *sdp,
|
||||||
|
@ -269,7 +268,7 @@ static void gfs2_log_update_head(struct gfs2_sbd *sdp)
|
||||||
sdp->sd_log_head = new_head;
|
sdp->sd_log_head = new_head;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_ail_empty_tr - empty one of the ail lists of a transaction
|
* gfs2_ail_empty_tr - empty one of the ail lists of a transaction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1018,7 +1017,7 @@ static void trans_drain(struct gfs2_trans *tr)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_log_flush - flush incore transaction(s)
|
* gfs2_log_flush - flush incore transaction(s)
|
||||||
* @sdp: the filesystem
|
* @sdp: The filesystem
|
||||||
* @gl: The glock structure to flush. If NULL, flush the whole incore log
|
* @gl: The glock structure to flush. If NULL, flush the whole incore log
|
||||||
* @flags: The log header flags: GFS2_LOG_HEAD_FLUSH_* and debug flags
|
* @flags: The log header flags: GFS2_LOG_HEAD_FLUSH_* and debug flags
|
||||||
*
|
*
|
||||||
|
@ -1170,7 +1169,7 @@ out_withdraw:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_merge_trans - Merge a new transaction into a cached transaction
|
* gfs2_merge_trans - Merge a new transaction into a cached transaction
|
||||||
* @old: Original transaction to be expanded
|
* @sdp: the filesystem
|
||||||
* @new: New transaction to be merged
|
* @new: New transaction to be merged
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1287,7 +1286,7 @@ static inline int gfs2_ail_flush_reqd(struct gfs2_sbd *sdp)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_logd - Update log tail as Active Items get flushed to in-place blocks
|
* gfs2_logd - Update log tail as Active Items get flushed to in-place blocks
|
||||||
* @sdp: Pointer to GFS2 superblock
|
* @data: Pointer to GFS2 superblock
|
||||||
*
|
*
|
||||||
* Also, periodically check to make sure that we're using the most recent
|
* Also, periodically check to make sure that we're using the most recent
|
||||||
* journal index.
|
* journal index.
|
||||||
|
|
|
@ -96,9 +96,7 @@ out:
|
||||||
* gfs2_unpin - Unpin a buffer
|
* gfs2_unpin - Unpin a buffer
|
||||||
* @sdp: the filesystem the buffer belongs to
|
* @sdp: the filesystem the buffer belongs to
|
||||||
* @bh: The buffer to unpin
|
* @bh: The buffer to unpin
|
||||||
* @ai:
|
* @tr: The system transaction being flushed
|
||||||
* @flags: The inode dirty flags
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void gfs2_unpin(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
static void gfs2_unpin(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||||
|
@ -281,7 +279,7 @@ static struct bio *gfs2_log_alloc_bio(struct gfs2_sbd *sdp, u64 blkno,
|
||||||
* gfs2_log_get_bio - Get cached log bio, or allocate a new one
|
* gfs2_log_get_bio - Get cached log bio, or allocate a new one
|
||||||
* @sdp: The super block
|
* @sdp: The super block
|
||||||
* @blkno: The device block number we want to write to
|
* @blkno: The device block number we want to write to
|
||||||
* @bio: The bio to get or allocate
|
* @biop: The bio to get or allocate
|
||||||
* @op: REQ_OP
|
* @op: REQ_OP
|
||||||
* @end_io: The bi_end_io callback
|
* @end_io: The bi_end_io callback
|
||||||
* @flush: Always flush the current bio and allocate a new one?
|
* @flush: Always flush the current bio and allocate a new one?
|
||||||
|
@ -317,6 +315,7 @@ static struct bio *gfs2_log_get_bio(struct gfs2_sbd *sdp, u64 blkno,
|
||||||
/**
|
/**
|
||||||
* gfs2_log_write - write to log
|
* gfs2_log_write - write to log
|
||||||
* @sdp: the filesystem
|
* @sdp: the filesystem
|
||||||
|
* @jd: The journal descriptor
|
||||||
* @page: the page to write
|
* @page: the page to write
|
||||||
* @size: the size of the data to write
|
* @size: the size of the data to write
|
||||||
* @offset: the offset within the page
|
* @offset: the offset within the page
|
||||||
|
@ -417,6 +416,7 @@ static void gfs2_end_log_read(struct bio *bio)
|
||||||
/**
|
/**
|
||||||
* gfs2_jhead_pg_srch - Look for the journal head in a given page.
|
* gfs2_jhead_pg_srch - Look for the journal head in a given page.
|
||||||
* @jd: The journal descriptor
|
* @jd: The journal descriptor
|
||||||
|
* @head: The journal head to start from
|
||||||
* @page: The page to look in
|
* @page: The page to look in
|
||||||
*
|
*
|
||||||
* Returns: 1 if found, 0 otherwise.
|
* Returns: 1 if found, 0 otherwise.
|
||||||
|
@ -450,6 +450,7 @@ static bool gfs2_jhead_pg_srch(struct gfs2_jdesc *jd,
|
||||||
* gfs2_jhead_process_page - Search/cleanup a page
|
* gfs2_jhead_process_page - Search/cleanup a page
|
||||||
* @jd: The journal descriptor
|
* @jd: The journal descriptor
|
||||||
* @index: Index of the page to look into
|
* @index: Index of the page to look into
|
||||||
|
* @head: The journal head to start from
|
||||||
* @done: If set, perform only cleanup, else search and set if found.
|
* @done: If set, perform only cleanup, else search and set if found.
|
||||||
*
|
*
|
||||||
* Find the page with 'index' in the journal's mapping. Search the page for
|
* Find the page with 'index' in the journal's mapping. Search the page for
|
||||||
|
@ -502,6 +503,7 @@ static struct bio *gfs2_chain_bio(struct bio *prev, unsigned int nr_iovecs)
|
||||||
* gfs2_find_jhead - find the head of a log
|
* gfs2_find_jhead - find the head of a log
|
||||||
* @jd: The journal descriptor
|
* @jd: The journal descriptor
|
||||||
* @head: The log descriptor for the head of the log is returned here
|
* @head: The log descriptor for the head of the log is returned here
|
||||||
|
* @keep_cache: If set inode pages will not be truncated
|
||||||
*
|
*
|
||||||
* Do a search of a journal by reading it in large chunks using bios and find
|
* Do a search of a journal by reading it in large chunks using bios and find
|
||||||
* the valid log entry with the highest sequence number. (i.e. the log head)
|
* the valid log entry with the highest sequence number. (i.e. the log head)
|
||||||
|
@ -976,7 +978,8 @@ static void revoke_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* databuf_lo_before_commit - Scan the data buffers, writing as we go
|
* databuf_lo_before_commit - Scan the data buffers, writing as we go
|
||||||
*
|
* @sdp: The filesystem
|
||||||
|
* @tr: The system transaction being flushed
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void databuf_lo_before_commit(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
|
static void databuf_lo_before_commit(struct gfs2_sbd *sdp, struct gfs2_trans *tr)
|
||||||
|
|
|
@ -243,6 +243,7 @@ static void gfs2_submit_bhs(int op, int op_flags, struct buffer_head *bhs[],
|
||||||
* @gl: The glock covering the block
|
* @gl: The glock covering the block
|
||||||
* @blkno: The block number
|
* @blkno: The block number
|
||||||
* @flags: flags
|
* @flags: flags
|
||||||
|
* @rahead: Do read-ahead
|
||||||
* @bhp: the place where the buffer is returned (NULL on failure)
|
* @bhp: the place where the buffer is returned (NULL on failure)
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
|
|
|
@ -150,7 +150,6 @@ fail:
|
||||||
/**
|
/**
|
||||||
* gfs2_check_sb - Check superblock
|
* gfs2_check_sb - Check superblock
|
||||||
* @sdp: the filesystem
|
* @sdp: the filesystem
|
||||||
* @sb: The superblock
|
|
||||||
* @silent: Don't print a message if the check fails
|
* @silent: Don't print a message if the check fails
|
||||||
*
|
*
|
||||||
* Checks the version code of the FS is one that we understand how to
|
* Checks the version code of the FS is one that we understand how to
|
||||||
|
@ -222,7 +221,7 @@ static void gfs2_sb_in(struct gfs2_sbd *sdp, const void *buf)
|
||||||
* gfs2_read_super - Read the gfs2 super block from disk
|
* gfs2_read_super - Read the gfs2 super block from disk
|
||||||
* @sdp: The GFS2 super block
|
* @sdp: The GFS2 super block
|
||||||
* @sector: The location of the super block
|
* @sector: The location of the super block
|
||||||
* @error: The error code to return
|
* @silent: Don't print a message if the check fails
|
||||||
*
|
*
|
||||||
* This uses the bio functions to read the super block from disk
|
* This uses the bio functions to read the super block from disk
|
||||||
* because we want to be 100% sure that we never read cached data.
|
* because we want to be 100% sure that we never read cached data.
|
||||||
|
@ -982,7 +981,6 @@ static const struct lm_lockops nolock_ops = {
|
||||||
/**
|
/**
|
||||||
* gfs2_lm_mount - mount a locking protocol
|
* gfs2_lm_mount - mount a locking protocol
|
||||||
* @sdp: the filesystem
|
* @sdp: the filesystem
|
||||||
* @args: mount arguments
|
|
||||||
* @silent: if 1, don't complain if the FS isn't a GFS2 fs
|
* @silent: if 1, don't complain if the FS isn't a GFS2 fs
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
|
@ -1092,8 +1090,7 @@ void gfs2_online_uevent(struct gfs2_sbd *sdp)
|
||||||
/**
|
/**
|
||||||
* gfs2_fill_super - Read in superblock
|
* gfs2_fill_super - Read in superblock
|
||||||
* @sb: The VFS superblock
|
* @sb: The VFS superblock
|
||||||
* @args: Mount options
|
* @fc: Mount options and flags
|
||||||
* @silent: Don't complain if it's not a GFS2 filesystem
|
|
||||||
*
|
*
|
||||||
* Returns: -errno
|
* Returns: -errno
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1534,7 +1534,7 @@ void gfs2_wake_up_statfs(struct gfs2_sbd *sdp) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_quotad - Write cached quota changes into the quota file
|
* gfs2_quotad - Write cached quota changes into the quota file
|
||||||
* @sdp: Pointer to GFS2 superblock
|
* @data: Pointer to GFS2 superblock
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ int __get_log_header(struct gfs2_sbd *sdp, const struct gfs2_log_header *lh,
|
||||||
* get_log_header - read the log header for a given segment
|
* get_log_header - read the log header for a given segment
|
||||||
* @jd: the journal
|
* @jd: the journal
|
||||||
* @blk: the block to look at
|
* @blk: the block to look at
|
||||||
* @lh: the log header to return
|
* @head: the log header to return
|
||||||
*
|
*
|
||||||
* Read the log header for a given segement in a given journal. Do a few
|
* Read the log header for a given segement in a given journal. Do a few
|
||||||
* sanity checks on it.
|
* sanity checks on it.
|
||||||
|
@ -187,6 +187,7 @@ static int get_log_header(struct gfs2_jdesc *jd, unsigned int blk,
|
||||||
* @jd: the journal
|
* @jd: the journal
|
||||||
* @start: the first log header in the active region
|
* @start: the first log header in the active region
|
||||||
* @end: the last log header (don't process the contents of this entry))
|
* @end: the last log header (don't process the contents of this entry))
|
||||||
|
* @pass: iteration number (foreach_descriptor() is called in a for() loop)
|
||||||
*
|
*
|
||||||
* Call a given function once for every log descriptor in the active
|
* Call a given function once for every log descriptor in the active
|
||||||
* portion of the log.
|
* portion of the log.
|
||||||
|
|
|
@ -743,7 +743,7 @@ void gfs2_clear_rgrpd(struct gfs2_sbd *sdp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_compute_bitstructs - Compute the bitmap sizes
|
* compute_bitstructs - Compute the bitmap sizes
|
||||||
* @rgd: The resource group descriptor
|
* @rgd: The resource group descriptor
|
||||||
*
|
*
|
||||||
* Calculates bitmap descriptors, one for each block that contains bitmap data
|
* Calculates bitmap descriptors, one for each block that contains bitmap data
|
||||||
|
@ -1534,8 +1534,9 @@ static void rs_insert(struct gfs2_inode *ip)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rgd_free - return the number of free blocks we can allocate.
|
* rgd_free - return the number of free blocks we can allocate
|
||||||
* @rgd: the resource group
|
* @rgd: the resource group
|
||||||
|
* @rs: The reservation to free
|
||||||
*
|
*
|
||||||
* This function returns the number of free blocks for an rgrp.
|
* This function returns the number of free blocks for an rgrp.
|
||||||
* That's the clone-free blocks (blocks that are free, not including those
|
* That's the clone-free blocks (blocks that are free, not including those
|
||||||
|
@ -2019,6 +2020,7 @@ static bool gfs2_select_rgrp(struct gfs2_rgrpd **pos, const struct gfs2_rgrpd *b
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fast_to_acquire - determine if a resource group will be fast to acquire
|
* fast_to_acquire - determine if a resource group will be fast to acquire
|
||||||
|
* @rgd: The rgrp
|
||||||
*
|
*
|
||||||
* If this is one of our preferred rgrps, it should be quicker to acquire,
|
* If this is one of our preferred rgrps, it should be quicker to acquire,
|
||||||
* because we tried to set ourselves up as dlm lock master.
|
* because we tried to set ourselves up as dlm lock master.
|
||||||
|
|
|
@ -387,8 +387,6 @@ struct lfcc {
|
||||||
* gfs2_lock_fs_check_clean - Stop all writes to the FS and check that all
|
* gfs2_lock_fs_check_clean - Stop all writes to the FS and check that all
|
||||||
* journals are clean
|
* journals are clean
|
||||||
* @sdp: the file system
|
* @sdp: the file system
|
||||||
* @state: the state to put the transaction lock into
|
|
||||||
* @t_gh: the hold on the transaction lock
|
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
@ -701,6 +699,7 @@ restart:
|
||||||
/**
|
/**
|
||||||
* gfs2_sync_fs - sync the filesystem
|
* gfs2_sync_fs - sync the filesystem
|
||||||
* @sb: the superblock
|
* @sb: the superblock
|
||||||
|
* @wait: true to wait for completion
|
||||||
*
|
*
|
||||||
* Flushes the log to disk.
|
* Flushes the log to disk.
|
||||||
*/
|
*/
|
||||||
|
@ -811,7 +810,7 @@ static int gfs2_unfreeze(struct super_block *sb)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* statfs_fill - fill in the sg for a given RG
|
* statfs_slow_fill - fill in the sg for a given RG
|
||||||
* @rgd: the RG
|
* @rgd: the RG
|
||||||
* @sc: the sc structure
|
* @sc: the sc structure
|
||||||
*
|
*
|
||||||
|
@ -909,7 +908,7 @@ static int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host
|
||||||
/**
|
/**
|
||||||
* gfs2_statfs_i - Do a statfs
|
* gfs2_statfs_i - Do a statfs
|
||||||
* @sdp: the filesystem
|
* @sdp: the filesystem
|
||||||
* @sg: the sg structure
|
* @sc: the sc structure
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
@ -940,8 +939,8 @@ static int gfs2_statfs_i(struct gfs2_sbd *sdp, struct gfs2_statfs_change_host *s
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_statfs - Gather and return stats about the filesystem
|
* gfs2_statfs - Gather and return stats about the filesystem
|
||||||
* @sb: The superblock
|
* @dentry: The name of the link
|
||||||
* @statfsbuf: The buffer
|
* @buf: The buffer
|
||||||
*
|
*
|
||||||
* Returns: 0 on success or error code
|
* Returns: 0 on success or error code
|
||||||
*/
|
*/
|
||||||
|
@ -1272,6 +1271,7 @@ static bool gfs2_upgrade_iopen_glock(struct inode *inode)
|
||||||
/**
|
/**
|
||||||
* evict_should_delete - determine whether the inode is eligible for deletion
|
* evict_should_delete - determine whether the inode is eligible for deletion
|
||||||
* @inode: The inode to evict
|
* @inode: The inode to evict
|
||||||
|
* @gh: The glock holder structure
|
||||||
*
|
*
|
||||||
* This function determines whether the evicted inode is eligible to be deleted
|
* This function determines whether the evicted inode is eligible to be deleted
|
||||||
* and locks the inode glock.
|
* and locks the inode glock.
|
||||||
|
|
|
@ -44,6 +44,7 @@ void gfs2_assert_i(struct gfs2_sbd *sdp)
|
||||||
* check_journal_clean - Make sure a journal is clean for a spectator mount
|
* check_journal_clean - Make sure a journal is clean for a spectator mount
|
||||||
* @sdp: The GFS2 superblock
|
* @sdp: The GFS2 superblock
|
||||||
* @jd: The journal descriptor
|
* @jd: The journal descriptor
|
||||||
|
* @verbose: Show more prints in the log
|
||||||
*
|
*
|
||||||
* Returns: 0 if the journal is clean or locked, else an error
|
* Returns: 0 if the journal is clean or locked, else an error
|
||||||
*/
|
*/
|
||||||
|
@ -362,7 +363,7 @@ int gfs2_withdraw(struct gfs2_sbd *sdp)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_assert_withdraw_i - Cause the machine to withdraw if @assertion is false
|
* gfs2_assert_withdraw_i - Cause the machine to withdraw if @assertion is false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -392,7 +393,7 @@ void gfs2_assert_withdraw_i(struct gfs2_sbd *sdp, char *assertion,
|
||||||
dump_stack();
|
dump_stack();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_assert_warn_i - Print a message to the console if @assertion is false
|
* gfs2_assert_warn_i - Print a message to the console if @assertion is false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -422,7 +423,7 @@ void gfs2_assert_warn_i(struct gfs2_sbd *sdp, char *assertion,
|
||||||
sdp->sd_last_warning = jiffies;
|
sdp->sd_last_warning = jiffies;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_consist_i - Flag a filesystem consistency error and withdraw
|
* gfs2_consist_i - Flag a filesystem consistency error and withdraw
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -435,7 +436,7 @@ void gfs2_consist_i(struct gfs2_sbd *sdp, const char *function,
|
||||||
gfs2_withdraw(sdp);
|
gfs2_withdraw(sdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_consist_inode_i - Flag an inode consistency error and withdraw
|
* gfs2_consist_inode_i - Flag an inode consistency error and withdraw
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -454,7 +455,7 @@ void gfs2_consist_inode_i(struct gfs2_inode *ip,
|
||||||
gfs2_withdraw(sdp);
|
gfs2_withdraw(sdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_consist_rgrpd_i - Flag a RG consistency error and withdraw
|
* gfs2_consist_rgrpd_i - Flag a RG consistency error and withdraw
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -475,7 +476,7 @@ void gfs2_consist_rgrpd_i(struct gfs2_rgrpd *rgd,
|
||||||
gfs2_withdraw(sdp);
|
gfs2_withdraw(sdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_meta_check_ii - Flag a magic number consistency error and withdraw
|
* gfs2_meta_check_ii - Flag a magic number consistency error and withdraw
|
||||||
* Returns: -1 if this call withdrew the machine,
|
* Returns: -1 if this call withdrew the machine,
|
||||||
* -2 if it was already withdrawn
|
* -2 if it was already withdrawn
|
||||||
|
@ -497,7 +498,7 @@ int gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||||
return (me) ? -1 : -2;
|
return (me) ? -1 : -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_metatype_check_ii - Flag a metadata type consistency error and withdraw
|
* gfs2_metatype_check_ii - Flag a metadata type consistency error and withdraw
|
||||||
* Returns: -1 if this call withdrew the machine,
|
* Returns: -1 if this call withdrew the machine,
|
||||||
* -2 if it was already withdrawn
|
* -2 if it was already withdrawn
|
||||||
|
@ -519,7 +520,7 @@ int gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
|
||||||
return (me) ? -1 : -2;
|
return (me) ? -1 : -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_io_error_i - Flag an I/O error and withdraw
|
* gfs2_io_error_i - Flag an I/O error and withdraw
|
||||||
* Returns: -1 if this call withdrew the machine,
|
* Returns: -1 if this call withdrew the machine,
|
||||||
* 0 if it was already withdrawn
|
* 0 if it was already withdrawn
|
||||||
|
@ -535,7 +536,7 @@ int gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function, char *file,
|
||||||
return gfs2_withdraw(sdp);
|
return gfs2_withdraw(sdp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* gfs2_io_error_bh_i - Flag a buffer I/O error
|
* gfs2_io_error_bh_i - Flag a buffer I/O error
|
||||||
* @withdraw: withdraw the filesystem
|
* @withdraw: withdraw the filesystem
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -26,12 +26,9 @@
|
||||||
#include "trans.h"
|
#include "trans.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* ea_calc_size - returns the acutal number of bytes the request will take up
|
* ea_calc_size - returns the actual number of bytes the request will take up
|
||||||
* (not counting any unstuffed data blocks)
|
* (not counting any unstuffed data blocks)
|
||||||
* @sdp:
|
|
||||||
* @er:
|
|
||||||
* @size:
|
|
||||||
*
|
*
|
||||||
* Returns: 1 if the EA should be stuffed
|
* Returns: 1 if the EA should be stuffed
|
||||||
*/
|
*/
|
||||||
|
@ -219,13 +216,8 @@ static int gfs2_ea_find(struct gfs2_inode *ip, int type, const char *name,
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* ea_dealloc_unstuffed -
|
* ea_dealloc_unstuffed
|
||||||
* @ip:
|
|
||||||
* @bh:
|
|
||||||
* @ea:
|
|
||||||
* @prev:
|
|
||||||
* @private:
|
|
||||||
*
|
*
|
||||||
* Take advantage of the fact that all unstuffed blocks are
|
* Take advantage of the fact that all unstuffed blocks are
|
||||||
* allocated from the same RG. But watch, this may not always
|
* allocated from the same RG. But watch, this may not always
|
||||||
|
@ -448,8 +440,8 @@ ssize_t gfs2_listxattr(struct dentry *dentry, char *buffer, size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ea_iter_unstuffed - copies the unstuffed xattr data to/from the
|
* gfs2_iter_unstuffed - copies the unstuffed xattr data to/from the
|
||||||
* request buffer
|
* request buffer
|
||||||
* @ip: The GFS2 inode
|
* @ip: The GFS2 inode
|
||||||
* @ea: The extended attribute header structure
|
* @ea: The extended attribute header structure
|
||||||
* @din: The data to be copied in
|
* @din: The data to be copied in
|
||||||
|
@ -573,7 +565,7 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_xattr_get - Get a GFS2 extended attribute
|
* __gfs2_xattr_get - Get a GFS2 extended attribute
|
||||||
* @inode: The inode
|
* @inode: The inode
|
||||||
* @name: The name of the extended attribute
|
* @name: The name of the extended attribute
|
||||||
* @buffer: The buffer to write the result into
|
* @buffer: The buffer to write the result into
|
||||||
|
@ -801,14 +793,11 @@ static int ea_init_i(struct gfs2_inode *ip, struct gfs2_ea_request *er,
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* ea_init - initializes a new eattr block
|
* ea_init - initializes a new eattr block
|
||||||
* @ip:
|
|
||||||
* @er:
|
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int ea_init(struct gfs2_inode *ip, int type, const char *name,
|
static int ea_init(struct gfs2_inode *ip, int type, const char *name,
|
||||||
const void *data, size_t size)
|
const void *data, size_t size)
|
||||||
{
|
{
|
||||||
|
@ -1164,7 +1153,7 @@ static int gfs2_xattr_remove(struct gfs2_inode *ip, int type, const char *name)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __gfs2_xattr_set - Set (or remove) a GFS2 extended attribute
|
* __gfs2_xattr_set - Set (or remove) a GFS2 extended attribute
|
||||||
* @ip: The inode
|
* @inode: The inode
|
||||||
* @name: The name of the extended attribute
|
* @name: The name of the extended attribute
|
||||||
* @value: The value of the extended attribute (NULL for remove)
|
* @value: The value of the extended attribute (NULL for remove)
|
||||||
* @size: The size of the @value argument
|
* @size: The size of the @value argument
|
||||||
|
|
Loading…
Reference in New Issue