#include "afs/sysincludes.h" /* Standard vendor system headers */
#include "afsincludes.h" /* Afs-based standard headers */
#include "afs/afs_stats.h" /* afs statistics */
-#include <linux/smp_lock.h>
#include <linux/namei.h>
#if defined(HAVE_LINUX_EXPORTFS_H)
crhold(&afs_osi_cred); /* don't let it evaporate, since it is static */
afs_osicred_initialized = 1;
}
- afile = (struct osi_file *)osi_AllocLargeSpace(sizeof(struct osi_file));
AFS_GUNLOCK();
+ afile = kmalloc(sizeof(struct osi_file), GFP_NOFS);
if (!afile) {
osi_Panic("osi_UFSOpen: Failed to allocate %d bytes for osi_file.\n",
(int)sizeof(struct osi_file));
filp_close(afile->filp, NULL);
}
}
-
- osi_FreeLargeSpace(afile);
+ kfree(afile);
return 0;
}
if (!afs_shuttingdown)
osi_Panic("osi_Read called with null param");
else
- return EIO;
+ return -EIO;
}
if (offset != -1)
} else {
afs_Trace2(afs_iclSetp, CM_TRACE_READFAILED, ICL_TYPE_INT32, auio.uio_resid,
ICL_TYPE_INT32, code);
- code = -1;
+ if (code > 0) {
+ code *= -1;
+ }
}
return code;
}
if (!afs_shuttingdown)
osi_Panic("afs_osi_Write called with null param");
else
- return EIO;
+ return -EIO;
}
if (offset != -1)
if (code == ENOSPC)
afs_warnuser
("\n\n\n*** Cache partition is FULL - Decrease cachesize!!! ***\n\n");
- code = -1;
+ if (code > 0) {
+ code *= -1;
+ }
}
if (afile->proc)
* kernel space.
*/
int
-osi_rdwr(struct osi_file *osifile, uio_t * uiop, int rw)
+osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw)
{
struct file *filp = osifile->filp;
mm_segment_t old_fs = {0};
* Setup a uio struct.
*/
void
-setup_uio(uio_t * uiop, struct iovec *iovecp, const char *buf, afs_offs_t pos,
+setup_uio(struct uio *uiop, struct iovec *iovecp, const char *buf, afs_offs_t pos,
int count, uio_flag_t flag, uio_seg_t seg)
{
iovecp->iov_base = (char *)buf;
* UIO_WRITE : uio -> dp
*/
int
-uiomove(char *dp, int length, uio_flag_t rw, uio_t * uiop)
+uiomove(char *dp, int length, uio_flag_t rw, struct uio *uiop)
{
int count;
struct iovec *iov;