(*tmp_iter != '\0')) {
if ( (!isprint(*tmp_iter))) {
- printk("Invalid character in path name (%d)\n", *tmp_iter);
+ ERROR("Invalid character in path name (%d)\n", *tmp_iter);
return -1;
} else {
tmp_iter++;
// Ignore empty directories
if ((tmp_iter - dirname_ptr) > 1) {
if (palacios_file_mkdir(tmp_str, perms, 0) != 0) {
- printk("Could not create directory (%s)\n", tmp_str);
+ ERROR("Could not create directory (%s)\n", tmp_str);
return -1;
}
}
struct nameidata nd;
// I'm not 100% sure about the version here, but it was around this time that the API changed
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,37)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,38)
ret = kern_path_parent(pathname, &nd);
#else
#endif
if (ret != 0) {
- printk("%s:%d - Error: kern_path_parent() returned error for (%s)\n", __FILE__, __LINE__,
+ ERROR("%s:%d - Error: kern_path_parent() returned error for (%s)\n", __FILE__, __LINE__,
pathname);
return -1;
}
vm_state = get_vm_ext_data(guest, "FILE_INTERFACE");
if (vm_state == NULL) {
- printk("ERROR: Could not locate vm file state for extension FILE_INTERFACE\n");
+ ERROR("ERROR: Could not locate vm file state for extension FILE_INTERFACE\n");
return NULL;
}
}
pfile->filp = filp_open(path, pfile->mode, 0);
if (IS_ERR(pfile->filp)) {
- printk("Cannot open file: %s\n", path);
+ ERROR("Cannot open file: %s\n", path);
return NULL;
}
return 0;
}
-static long long palacios_file_size(void * file_ptr) {
+static unsigned long long palacios_file_size(void * file_ptr) {
struct palacios_file * pfile = (struct palacios_file *)file_ptr;
struct file * filp = pfile->filp;
struct kstat s;
ret = vfs_getattr(filp->f_path.mnt, filp->f_path.dentry, &s);
if (ret != 0) {
- printk("Failed to fstat file\n");
+ ERROR("Failed to fstat file\n");
return -1;
}
return s.size;
}
-static long long palacios_file_read(void * file_ptr, void * buffer, long long length, long long offset){
+static unsigned long long palacios_file_read(void * file_ptr, void * buffer, unsigned long long length, unsigned long long offset){
struct palacios_file * pfile = (struct palacios_file *)file_ptr;
struct file * filp = pfile->filp;
ssize_t ret;
set_fs(old_fs);
if (ret <= 0) {
- printk("sys_read of %p for %lld bytes failed\n", filp, length);
+ ERROR("sys_read of %p for %lld bytes at offset %llu failed (ret=%ld)\n", filp, length, offset, ret);
}
return ret;
}
-static long long palacios_file_write(void * file_ptr, void * buffer, long long length, long long offset) {
+static unsigned long long palacios_file_write(void * file_ptr, void * buffer, unsigned long long length, unsigned long long offset) {
struct palacios_file * pfile = (struct palacios_file *)file_ptr;
struct file * filp = pfile->filp;
mm_segment_t old_fs;
if (ret <= 0) {
- printk("sys_write failed\n");
+ ERROR("sys_write for %llu bytes at offset %llu failed (ret=%ld)\n", length, offset, ret);
}
return ret;
static int file_deinit( void ) {
if (!list_empty(&(global_files))) {
- printk("Error removing module with open files\n");
+ ERROR("Error removing module with open files\n");
}
return 0;