staging: luster: Fix typo in lustre/llite
Fix spelling typo in lustre/lustre/llite Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fcda2f5bd0
commit
d0a0acc3cc
12 changed files with 32 additions and 32 deletions
|
@ -160,7 +160,7 @@ static int ll_ddelete(const struct dentry *de)
|
||||||
/* kernel >= 2.6.38 last refcount is decreased after this function. */
|
/* kernel >= 2.6.38 last refcount is decreased after this function. */
|
||||||
LASSERT(d_count(de) == 1);
|
LASSERT(d_count(de) == 1);
|
||||||
|
|
||||||
/* Disable this piece of code temproarily because this is called
|
/* Disable this piece of code temporarily because this is called
|
||||||
* inside dcache_lock so it's not appropriate to do lots of work
|
* inside dcache_lock so it's not appropriate to do lots of work
|
||||||
* here. ATTENTION: Before this piece of code enabling, LU-2487 must be
|
* here. ATTENTION: Before this piece of code enabling, LU-2487 must be
|
||||||
* resolved. */
|
* resolved. */
|
||||||
|
|
|
@ -1124,7 +1124,7 @@ restart:
|
||||||
vio->u.splice.cui_flags = args->u.splice.via_flags;
|
vio->u.splice.cui_flags = args->u.splice.via_flags;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
CERROR("Unknow IO type - %u\n", vio->cui_io_subtype);
|
CERROR("Unknown IO type - %u\n", vio->cui_io_subtype);
|
||||||
LBUG();
|
LBUG();
|
||||||
}
|
}
|
||||||
result = cl_io_loop(env, io);
|
result = cl_io_loop(env, io);
|
||||||
|
@ -2030,7 +2030,7 @@ static int ll_swap_layouts(struct file *file1, struct file *file2,
|
||||||
llss->ia2.ia_valid = ATTR_MTIME | ATTR_ATIME;
|
llss->ia2.ia_valid = ATTR_MTIME | ATTR_ATIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ultimate check, before swaping the layouts we check if
|
/* ultimate check, before swapping the layouts we check if
|
||||||
* dataversion has changed (if requested) */
|
* dataversion has changed (if requested) */
|
||||||
if (llss->check_dv1) {
|
if (llss->check_dv1) {
|
||||||
rc = ll_data_version(llss->inode1, &dv, 0);
|
rc = ll_data_version(llss->inode1, &dv, 0);
|
||||||
|
@ -2695,7 +2695,7 @@ int ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock)
|
||||||
LASSERT((cmd == F_SETLKW) || (cmd == F_SETLK));
|
LASSERT((cmd == F_SETLKW) || (cmd == F_SETLK));
|
||||||
/* flocks are whole-file locks */
|
/* flocks are whole-file locks */
|
||||||
flock.l_flock.end = OFFSET_MAX;
|
flock.l_flock.end = OFFSET_MAX;
|
||||||
/* For flocks owner is determined by the local file desctiptor*/
|
/* For flocks owner is determined by the local file descriptor*/
|
||||||
flock.l_flock.owner = (unsigned long)file_lock->fl_file;
|
flock.l_flock.owner = (unsigned long)file_lock->fl_file;
|
||||||
} else if (file_lock->fl_flags & FL_POSIX) {
|
} else if (file_lock->fl_flags & FL_POSIX) {
|
||||||
flock.l_flock.owner = (unsigned long)file_lock->fl_owner;
|
flock.l_flock.owner = (unsigned long)file_lock->fl_owner;
|
||||||
|
@ -3200,7 +3200,7 @@ struct inode_operations ll_file_inode_operations = {
|
||||||
.get_acl = ll_get_acl,
|
.get_acl = ll_get_acl,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* dynamic ioctl number support routins */
|
/* dynamic ioctl number support routines */
|
||||||
static struct llioc_ctl_data {
|
static struct llioc_ctl_data {
|
||||||
struct rw_semaphore ioc_sem;
|
struct rw_semaphore ioc_sem;
|
||||||
struct list_head ioc_head;
|
struct list_head ioc_head;
|
||||||
|
@ -3324,7 +3324,7 @@ int ll_layout_conf(struct inode *inode, const struct cl_object_conf *conf)
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
/* it can only be allowed to match after layout is
|
/* it can only be allowed to match after layout is
|
||||||
* applied to inode otherwise false layout would be
|
* applied to inode otherwise false layout would be
|
||||||
* seen. Applying layout shoud happen before dropping
|
* seen. Applying layout should happen before dropping
|
||||||
* the intent lock. */
|
* the intent lock. */
|
||||||
ldlm_lock_allow_match(lock);
|
ldlm_lock_allow_match(lock);
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,7 +348,7 @@ static int ll_close_thread(void *arg)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
inode = ll_info2i(lli);
|
inode = ll_info2i(lli);
|
||||||
CDEBUG(D_INFO, "done_writting for inode %lu/%u\n",
|
CDEBUG(D_INFO, "done_writing for inode %lu/%u\n",
|
||||||
inode->i_ino, inode->i_generation);
|
inode->i_ino, inode->i_generation);
|
||||||
ll_done_writing(inode);
|
ll_done_writing(inode);
|
||||||
iput(inode);
|
iput(inode);
|
||||||
|
|
|
@ -525,7 +525,7 @@ struct ll_sb_info {
|
||||||
atomic_t ll_agl_total; /* AGL thread started count */
|
atomic_t ll_agl_total; /* AGL thread started count */
|
||||||
|
|
||||||
dev_t ll_sdev_orig; /* save s_dev before assign for
|
dev_t ll_sdev_orig; /* save s_dev before assign for
|
||||||
* clustred nfs */
|
* clustered nfs */
|
||||||
struct rmtacl_ctl_table ll_rct;
|
struct rmtacl_ctl_table ll_rct;
|
||||||
struct eacl_table ll_et;
|
struct eacl_table ll_et;
|
||||||
__kernel_fsid_t ll_fsid;
|
__kernel_fsid_t ll_fsid;
|
||||||
|
@ -908,7 +908,7 @@ struct ccc_object *cl_inode2ccc(struct inode *inode);
|
||||||
void vvp_write_pending (struct ccc_object *club, struct ccc_page *page);
|
void vvp_write_pending (struct ccc_object *club, struct ccc_page *page);
|
||||||
void vvp_write_complete(struct ccc_object *club, struct ccc_page *page);
|
void vvp_write_complete(struct ccc_object *club, struct ccc_page *page);
|
||||||
|
|
||||||
/* specific achitecture can implement only part of this list */
|
/* specific architecture can implement only part of this list */
|
||||||
enum vvp_io_subtype {
|
enum vvp_io_subtype {
|
||||||
/** normal IO */
|
/** normal IO */
|
||||||
IO_NORMAL,
|
IO_NORMAL,
|
||||||
|
@ -1361,7 +1361,7 @@ ll_statahead_enter(struct inode *dir, struct dentry **dentryp, int only_unplug)
|
||||||
return do_statahead_enter(dir, dentryp, only_unplug);
|
return do_statahead_enter(dir, dentryp, only_unplug);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* llite ioctl register support rountine */
|
/* llite ioctl register support routine */
|
||||||
enum llioc_iter {
|
enum llioc_iter {
|
||||||
LLIOC_CONT = 0,
|
LLIOC_CONT = 0,
|
||||||
LLIOC_STOP
|
LLIOC_STOP
|
||||||
|
@ -1373,7 +1373,7 @@ enum llioc_iter {
|
||||||
* Rules to write a callback function:
|
* Rules to write a callback function:
|
||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* @magic: Dynamic ioctl call routine will feed this vaule with the pointer
|
* @magic: Dynamic ioctl call routine will feed this value with the pointer
|
||||||
* returned to ll_iocontrol_register. Callback functions should use this
|
* returned to ll_iocontrol_register. Callback functions should use this
|
||||||
* data to check the potential collasion of ioctl cmd. If collasion is
|
* data to check the potential collasion of ioctl cmd. If collasion is
|
||||||
* found, callback function should return LLIOC_CONT.
|
* found, callback function should return LLIOC_CONT.
|
||||||
|
@ -1398,7 +1398,7 @@ enum llioc_iter ll_iocontrol_call(struct inode *inode, struct file *file,
|
||||||
* @cb: callback function, it will be called if an ioctl command is found to
|
* @cb: callback function, it will be called if an ioctl command is found to
|
||||||
* belong to the command list @cmd.
|
* belong to the command list @cmd.
|
||||||
*
|
*
|
||||||
* Return vaule:
|
* Return value:
|
||||||
* A magic pointer will be returned if success;
|
* A magic pointer will be returned if success;
|
||||||
* otherwise, NULL will be returned.
|
* otherwise, NULL will be returned.
|
||||||
* */
|
* */
|
||||||
|
@ -1508,7 +1508,7 @@ static inline void ll_set_lock_data(struct obd_export *exp, struct inode *inode,
|
||||||
* separate locks in different namespaces, Master MDT,
|
* separate locks in different namespaces, Master MDT,
|
||||||
* where the name entry is, will grant LOOKUP lock,
|
* where the name entry is, will grant LOOKUP lock,
|
||||||
* remote MDT, where the object is, will grant
|
* remote MDT, where the object is, will grant
|
||||||
* UPDATE|PERM lock. The inode will be attched to both
|
* UPDATE|PERM lock. The inode will be attached to both
|
||||||
* LOOKUP and PERM locks, so revoking either locks will
|
* LOOKUP and PERM locks, so revoking either locks will
|
||||||
* case the dcache being cleared */
|
* case the dcache being cleared */
|
||||||
if (it->d.lustre.it_remote_lock_mode) {
|
if (it->d.lustre.it_remote_lock_mode) {
|
||||||
|
|
|
@ -279,7 +279,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
|
||||||
|
|
||||||
/* For mount, we only need fs info from MDT0, and also in DNE, it
|
/* For mount, we only need fs info from MDT0, and also in DNE, it
|
||||||
* can make sure the client can be mounted as long as MDT0 is
|
* can make sure the client can be mounted as long as MDT0 is
|
||||||
* avaible */
|
* available */
|
||||||
err = obd_statfs(NULL, sbi->ll_md_exp, osfs,
|
err = obd_statfs(NULL, sbi->ll_md_exp, osfs,
|
||||||
cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
|
cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
|
||||||
OBD_STATFS_FOR_MDT0);
|
OBD_STATFS_FOR_MDT0);
|
||||||
|
@ -717,7 +717,7 @@ void ll_kill_super(struct super_block *sb)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sbi = ll_s2sbi(sb);
|
sbi = ll_s2sbi(sb);
|
||||||
/* we need restore s_dev from changed for clustred NFS before put_super
|
/* we need to restore s_dev from changed for clustered NFS before put_super
|
||||||
* because new kernels have cached s_dev and change sb->s_dev in
|
* because new kernels have cached s_dev and change sb->s_dev in
|
||||||
* put_super not affected real removing devices */
|
* put_super not affected real removing devices */
|
||||||
if (sbi) {
|
if (sbi) {
|
||||||
|
|
|
@ -285,7 +285,7 @@ static inline int to_fault_error(int result)
|
||||||
* Lustre implementation of a vm_operations_struct::fault() method, called by
|
* Lustre implementation of a vm_operations_struct::fault() method, called by
|
||||||
* VM to server page fault (both in kernel and user space).
|
* VM to server page fault (both in kernel and user space).
|
||||||
*
|
*
|
||||||
* \param vma - is virtiual area struct related to page fault
|
* \param vma - is virtual area struct related to page fault
|
||||||
* \param vmf - structure which describe type and address where hit fault
|
* \param vmf - structure which describe type and address where hit fault
|
||||||
*
|
*
|
||||||
* \return allocated and filled _locked_ page for address
|
* \return allocated and filled _locked_ page for address
|
||||||
|
|
|
@ -255,7 +255,7 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head)
|
||||||
* to store parity;
|
* to store parity;
|
||||||
* 2. Reserve the # of (page_count * depth) cl_pages from the reserved
|
* 2. Reserve the # of (page_count * depth) cl_pages from the reserved
|
||||||
* pool. Afterwards, the clio would allocate the pages from reserved
|
* pool. Afterwards, the clio would allocate the pages from reserved
|
||||||
* pool, this guarantees we neeedn't allocate the cl_pages from
|
* pool, this guarantees we needn't allocate the cl_pages from
|
||||||
* generic cl_page slab cache.
|
* generic cl_page slab cache.
|
||||||
* Of course, if there is NOT enough pages in the pool, we might
|
* Of course, if there is NOT enough pages in the pool, we might
|
||||||
* be asked to write less pages once, this purely depends on
|
* be asked to write less pages once, this purely depends on
|
||||||
|
@ -325,7 +325,7 @@ static unsigned int loop_get_bio(struct lloop_device *lo, struct bio **req)
|
||||||
bio = &(*bio)->bi_next;
|
bio = &(*bio)->bi_next;
|
||||||
}
|
}
|
||||||
if (*bio) {
|
if (*bio) {
|
||||||
/* Some of bios can't be mergable. */
|
/* Some of bios can't be mergeable. */
|
||||||
lo->lo_bio = *bio;
|
lo->lo_bio = *bio;
|
||||||
*bio = NULL;
|
*bio = NULL;
|
||||||
} else {
|
} else {
|
||||||
|
@ -658,7 +658,7 @@ static struct block_device_operations lo_fops = {
|
||||||
* ll_iocontrol_call.
|
* ll_iocontrol_call.
|
||||||
*
|
*
|
||||||
* This is a llite regular file ioctl function. It takes the responsibility
|
* This is a llite regular file ioctl function. It takes the responsibility
|
||||||
* of attaching or detaching a file by a lloop's device numner.
|
* of attaching or detaching a file by a lloop's device number.
|
||||||
*/
|
*/
|
||||||
static enum llioc_iter lloop_ioctl(struct inode *unused, struct file *file,
|
static enum llioc_iter lloop_ioctl(struct inode *unused, struct file *file,
|
||||||
unsigned int cmd, unsigned long arg,
|
unsigned int cmd, unsigned long arg,
|
||||||
|
|
|
@ -465,7 +465,7 @@ int ll_lookup_it_finish(struct ptlrpc_request *request,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Only hash *de if it is unhashed (new dentry).
|
/* Only hash *de if it is unhashed (new dentry).
|
||||||
* Atoimc_open may passin hashed dentries for open.
|
* Atoimc_open may passing hashed dentries for open.
|
||||||
*/
|
*/
|
||||||
if (d_unhashed(*de)) {
|
if (d_unhashed(*de)) {
|
||||||
struct dentry *alias;
|
struct dentry *alias;
|
||||||
|
|
|
@ -558,10 +558,10 @@ static int ll_read_ahead_page(const struct lu_env *env, struct cl_io *io,
|
||||||
* striped over, rather than having a constant value for all files here. */
|
* striped over, rather than having a constant value for all files here. */
|
||||||
|
|
||||||
/* RAS_INCREASE_STEP should be (1UL << (inode->i_blkbits - PAGE_CACHE_SHIFT)).
|
/* RAS_INCREASE_STEP should be (1UL << (inode->i_blkbits - PAGE_CACHE_SHIFT)).
|
||||||
* Temprarily set RAS_INCREASE_STEP to 1MB. After 4MB RPC is enabled
|
* Temporarily set RAS_INCREASE_STEP to 1MB. After 4MB RPC is enabled
|
||||||
* by default, this should be adjusted corresponding with max_read_ahead_mb
|
* by default, this should be adjusted corresponding with max_read_ahead_mb
|
||||||
* and max_read_ahead_per_file_mb otherwise the readahead budget can be used
|
* and max_read_ahead_per_file_mb otherwise the readahead budget can be used
|
||||||
* up quickly which will affect read performance siginificantly. See LU-2816 */
|
* up quickly which will affect read performance significantly. See LU-2816 */
|
||||||
#define RAS_INCREASE_STEP(inode) (ONE_MB_BRW_SIZE >> PAGE_CACHE_SHIFT)
|
#define RAS_INCREASE_STEP(inode) (ONE_MB_BRW_SIZE >> PAGE_CACHE_SHIFT)
|
||||||
|
|
||||||
static inline int stride_io_mode(struct ll_readahead_state *ras)
|
static inline int stride_io_mode(struct ll_readahead_state *ras)
|
||||||
|
@ -570,7 +570,7 @@ static inline int stride_io_mode(struct ll_readahead_state *ras)
|
||||||
}
|
}
|
||||||
/* The function calculates how much pages will be read in
|
/* The function calculates how much pages will be read in
|
||||||
* [off, off + length], in such stride IO area,
|
* [off, off + length], in such stride IO area,
|
||||||
* stride_offset = st_off, stride_lengh = st_len,
|
* stride_offset = st_off, stride_length = st_len,
|
||||||
* stride_pages = st_pgs
|
* stride_pages = st_pgs
|
||||||
*
|
*
|
||||||
* |------------------|*****|------------------|*****|------------|*****|....
|
* |------------------|*****|------------------|*****|------------|*****|....
|
||||||
|
@ -1090,7 +1090,7 @@ void ras_update(struct ll_sb_info *sbi, struct inode *inode,
|
||||||
ras_set_start(inode, ras, index);
|
ras_set_start(inode, ras, index);
|
||||||
|
|
||||||
if (stride_io_mode(ras))
|
if (stride_io_mode(ras))
|
||||||
/* Since stride readahead is sentivite to the offset
|
/* Since stride readahead is sensitive to the offset
|
||||||
* of read-ahead, so we use original offset here,
|
* of read-ahead, so we use original offset here,
|
||||||
* instead of ras_window_start, which is RPC aligned */
|
* instead of ras_window_start, which is RPC aligned */
|
||||||
ras->ras_next_readahead = max(index, ras->ras_next_readahead);
|
ras->ras_next_readahead = max(index, ras->ras_next_readahead);
|
||||||
|
|
|
@ -577,7 +577,7 @@ static void ll_agl_trigger(struct inode *inode, struct ll_statahead_info *sai)
|
||||||
* Someone triggered glimpse within 1 sec before.
|
* Someone triggered glimpse within 1 sec before.
|
||||||
* 1) The former glimpse succeeded with glimpse lock granted by OST, and
|
* 1) The former glimpse succeeded with glimpse lock granted by OST, and
|
||||||
* if the lock is still cached on client, AGL needs to do nothing. If
|
* if the lock is still cached on client, AGL needs to do nothing. If
|
||||||
* it is cancelled by other client, AGL maybe cannot obtaion new lock
|
* it is cancelled by other client, AGL maybe cannot obtain new lock
|
||||||
* for no glimpse callback triggered by AGL.
|
* for no glimpse callback triggered by AGL.
|
||||||
* 2) The former glimpse succeeded, but OST did not grant glimpse lock.
|
* 2) The former glimpse succeeded, but OST did not grant glimpse lock.
|
||||||
* Under such case, it is quite possible that the OST will not grant
|
* Under such case, it is quite possible that the OST will not grant
|
||||||
|
|
|
@ -646,7 +646,7 @@ static int vvp_io_kernel_fault(struct vvp_fault_io *cfio)
|
||||||
if (cfio->fault.ft_flags & VM_FAULT_RETRY)
|
if (cfio->fault.ft_flags & VM_FAULT_RETRY)
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
|
|
||||||
CERROR("unknow error in page fault %d!\n", cfio->fault.ft_flags);
|
CERROR("Unknown error in page fault %d!\n", cfio->fault.ft_flags);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1192,7 +1192,7 @@ int vvp_io_init(const struct lu_env *env, struct cl_object *obj,
|
||||||
if (result == -ENOENT)
|
if (result == -ENOENT)
|
||||||
/* If the inode on MDS has been removed, but the objects
|
/* If the inode on MDS has been removed, but the objects
|
||||||
* on OSTs haven't been destroyed (async unlink), layout
|
* on OSTs haven't been destroyed (async unlink), layout
|
||||||
* fetch will return -ENOENT, we'd ingore this error
|
* fetch will return -ENOENT, we'd ignore this error
|
||||||
* and continue with dirty flush. LU-3230. */
|
* and continue with dirty flush. LU-3230. */
|
||||||
result = 0;
|
result = 0;
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
|
@ -1207,7 +1207,7 @@ int vvp_io_init(const struct lu_env *env, struct cl_object *obj,
|
||||||
static struct vvp_io *cl2vvp_io(const struct lu_env *env,
|
static struct vvp_io *cl2vvp_io(const struct lu_env *env,
|
||||||
const struct cl_io_slice *slice)
|
const struct cl_io_slice *slice)
|
||||||
{
|
{
|
||||||
/* Caling just for assertion */
|
/* Calling just for assertion */
|
||||||
cl2ccc_io(env, slice);
|
cl2ccc_io(env, slice);
|
||||||
return vvp_env_io(env);
|
return vvp_env_io(env);
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ int ll_xattr_cache_valid(struct ll_inode_info *lli)
|
||||||
*
|
*
|
||||||
* Free all xattr memory. @lli is the inode info pointer.
|
* Free all xattr memory. @lli is the inode info pointer.
|
||||||
*
|
*
|
||||||
* \retval 0 no error occured
|
* \retval 0 no error occurred
|
||||||
*/
|
*/
|
||||||
static int ll_xattr_cache_destroy_locked(struct ll_inode_info *lli)
|
static int ll_xattr_cache_destroy_locked(struct ll_inode_info *lli)
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ int ll_xattr_cache_destroy(struct inode *inode)
|
||||||
* the function handles it with a separate enq lock.
|
* the function handles it with a separate enq lock.
|
||||||
* If successful, the function exits with the list lock held.
|
* If successful, the function exits with the list lock held.
|
||||||
*
|
*
|
||||||
* \retval 0 no error occured
|
* \retval 0 no error occurred
|
||||||
* \retval -ENOMEM not enough memory
|
* \retval -ENOMEM not enough memory
|
||||||
*/
|
*/
|
||||||
static int ll_xattr_find_get_lock(struct inode *inode,
|
static int ll_xattr_find_get_lock(struct inode *inode,
|
||||||
|
@ -347,7 +347,7 @@ out:
|
||||||
* a read or a write xattr lock depending on operation in @oit.
|
* a read or a write xattr lock depending on operation in @oit.
|
||||||
* Intent is dropped on exit unless the operation is setxattr.
|
* Intent is dropped on exit unless the operation is setxattr.
|
||||||
*
|
*
|
||||||
* \retval 0 no error occured
|
* \retval 0 no error occurred
|
||||||
* \retval -EPROTO network protocol error
|
* \retval -EPROTO network protocol error
|
||||||
* \retval -ENOMEM not enough memory for the cache
|
* \retval -ENOMEM not enough memory for the cache
|
||||||
*/
|
*/
|
||||||
|
@ -477,7 +477,7 @@ out_destroy:
|
||||||
* The resulting value/list is stored in @buffer if the former
|
* The resulting value/list is stored in @buffer if the former
|
||||||
* is not larger than @size.
|
* is not larger than @size.
|
||||||
*
|
*
|
||||||
* \retval 0 no error occured
|
* \retval 0 no error occurred
|
||||||
* \retval -EPROTO network protocol error
|
* \retval -EPROTO network protocol error
|
||||||
* \retval -ENOMEM not enough memory for the cache
|
* \retval -ENOMEM not enough memory for the cache
|
||||||
* \retval -ERANGE the buffer is not large enough
|
* \retval -ERANGE the buffer is not large enough
|
||||||
|
|
Loading…
Add table
Reference in a new issue