diff options
Diffstat (limited to 'drivers/staging/pohmelfs')
-rw-r--r-- | drivers/staging/pohmelfs/config.c | 41 | ||||
-rw-r--r-- | drivers/staging/pohmelfs/crypto.c | 38 | ||||
-rw-r--r-- | drivers/staging/pohmelfs/dir.c | 14 | ||||
-rw-r--r-- | drivers/staging/pohmelfs/inode.c | 64 | ||||
-rw-r--r-- | drivers/staging/pohmelfs/net.c | 38 | ||||
-rw-r--r-- | drivers/staging/pohmelfs/netfs.h | 17 |
6 files changed, 104 insertions, 108 deletions
diff --git a/drivers/staging/pohmelfs/config.c b/drivers/staging/pohmelfs/config.c index eed0e55..8c8d1c2 100644 --- a/drivers/staging/pohmelfs/config.c +++ b/drivers/staging/pohmelfs/config.c @@ -204,18 +204,18 @@ int pohmelfs_copy_crypto(struct pohmelfs_sb *psb) } if (g->hash_keysize) { - psb->hash_key = kmalloc(g->hash_keysize, GFP_KERNEL); + psb->hash_key = kmemdup(g->hash_key, g->hash_keysize, + GFP_KERNEL); if (!psb->hash_key) goto err_out_free_cipher_string; - memcpy(psb->hash_key, g->hash_key, g->hash_keysize); psb->hash_keysize = g->hash_keysize; } if (g->cipher_keysize) { - psb->cipher_key = kmalloc(g->cipher_keysize, GFP_KERNEL); + psb->cipher_key = kmemdup(g->cipher_key, g->cipher_keysize, + GFP_KERNEL); if (!psb->cipher_key) goto err_out_free_hash; - memcpy(psb->cipher_key, g->cipher_key, g->cipher_keysize); psb->cipher_keysize = g->cipher_keysize; } @@ -238,11 +238,10 @@ static int pohmelfs_send_reply(int err, int msg_num, int action, struct cn_msg * { struct pohmelfs_cn_ack *ack; - ack = kmalloc(sizeof(struct pohmelfs_cn_ack), GFP_KERNEL); + ack = kzalloc(sizeof(struct pohmelfs_cn_ack), GFP_KERNEL); if (!ack) return -ENOMEM; - memset(ack, 0, sizeof(struct pohmelfs_cn_ack)); memcpy(&ack->msg, msg, sizeof(struct cn_msg)); if (action == POHMELFS_CTLINFO_ACK) @@ -455,14 +454,12 @@ static int pohmelfs_crypto_hash_init(struct pohmelfs_config_group *g, struct poh g->hash_strlen = c->strlen; g->hash_keysize = c->keysize; - g->hash_key = kmalloc(c->keysize, GFP_KERNEL); + g->hash_key = kmemdup(key, c->keysize, GFP_KERNEL); if (!g->hash_key) { kfree(g->hash_string); return -ENOMEM; } - memcpy(g->hash_key, key, c->keysize); - return 0; } @@ -480,14 +477,12 @@ static int pohmelfs_crypto_cipher_init(struct pohmelfs_config_group *g, struct p g->cipher_strlen = c->strlen; g->cipher_keysize = c->keysize; - g->cipher_key = kmalloc(c->keysize, GFP_KERNEL); + g->cipher_key = kmemdup(key, c->keysize, GFP_KERNEL); if (!g->cipher_key) { kfree(g->cipher_string); return -ENOMEM; } - memcpy(g->cipher_key, key, c->keysize); - return 0; } @@ -509,13 +504,13 @@ static int pohmelfs_cn_crypto(struct cn_msg *msg) } switch (crypto->type) { - case POHMELFS_CRYPTO_HASH: + case POHMELFS_CRYPTO_HASH: err = pohmelfs_crypto_hash_init(g, crypto); break; - case POHMELFS_CRYPTO_CIPHER: + case POHMELFS_CRYPTO_CIPHER: err = pohmelfs_crypto_cipher_init(g, crypto); break; - default: + default: err = -ENOTSUPP; break; } @@ -536,24 +531,24 @@ static void pohmelfs_cn_callback(struct cn_msg *msg, struct netlink_skb_parms *n return; switch (msg->flags) { - case POHMELFS_FLAGS_ADD: - case POHMELFS_FLAGS_DEL: - case POHMELFS_FLAGS_MODIFY: + case POHMELFS_FLAGS_ADD: + case POHMELFS_FLAGS_DEL: + case POHMELFS_FLAGS_MODIFY: err = pohmelfs_cn_ctl(msg, msg->flags); break; - case POHMELFS_FLAGS_FLUSH: + case POHMELFS_FLAGS_FLUSH: err = pohmelfs_cn_flush(msg); break; - case POHMELFS_FLAGS_SHOW: + case POHMELFS_FLAGS_SHOW: err = pohmelfs_cn_disp(msg); break; - case POHMELFS_FLAGS_DUMP: + case POHMELFS_FLAGS_DUMP: err = pohmelfs_cn_dump(msg); break; - case POHMELFS_FLAGS_CRYPTO: + case POHMELFS_FLAGS_CRYPTO: err = pohmelfs_cn_crypto(msg); break; - default: + default: err = -ENOSYS; break; } diff --git a/drivers/staging/pohmelfs/crypto.c b/drivers/staging/pohmelfs/crypto.c index 884183c0..2fdb3e0 100644 --- a/drivers/staging/pohmelfs/crypto.c +++ b/drivers/staging/pohmelfs/crypto.c @@ -170,17 +170,17 @@ static int pohmelfs_crypto_process(struct ablkcipher_request *req, err = crypto_ablkcipher_decrypt(req); switch (err) { - case -EINPROGRESS: - case -EBUSY: - err = wait_for_completion_interruptible_timeout(&complete.complete, + case -EINPROGRESS: + case -EBUSY: + err = wait_for_completion_interruptible_timeout(&complete.complete, timeout); - if (!err) - err = -ETIMEDOUT; - else if (err > 0) - err = complete.error; - break; - default: - break; + if (!err) + err = -ETIMEDOUT; + else if (err > 0) + err = complete.error; + break; + default: + break; } return err; @@ -196,7 +196,7 @@ int pohmelfs_crypto_process_input_data(struct pohmelfs_crypto_engine *e, u64 cmd return 0; dprintk("%s: eng: %p, iv: %llx, data: %p, page: %p/%lu, size: %u.\n", - __func__, e, cmd_iv, data, page, (page)?page->index:0, size); + __func__, e, cmd_iv, data, page, (page) ? page->index : 0, size); if (data) { sg_init_one(&sg, data, size); @@ -247,7 +247,7 @@ int pohmelfs_crypto_process_input_data(struct pohmelfs_crypto_engine *e, u64 cmd dprintk("%s: eng: %p, hash: %p, cipher: %p: iv : %llx, hash mismatch (recv/calc): ", __func__, e, e->hash, e->cipher, cmd_iv); - for (i=0; i<crypto_hash_digestsize(e->hash); ++i) { + for (i = 0; i < crypto_hash_digestsize(e->hash); ++i) { #if 0 dprintka("%02x ", recv[i]); if (recv[i] != calc[i]) { @@ -279,7 +279,7 @@ err_out_exit: } static int pohmelfs_trans_iter(struct netfs_trans *t, struct pohmelfs_crypto_engine *e, - int (* iterator) (struct pohmelfs_crypto_engine *e, + int (*iterator) (struct pohmelfs_crypto_engine *e, struct scatterlist *dst, struct scatterlist *src)) { @@ -319,7 +319,7 @@ static int pohmelfs_trans_iter(struct netfs_trans *t, struct pohmelfs_crypto_eng return 0; dpage_idx = 0; - for (i=0; i<t->page_num; ++i) { + for (i = 0; i < t->page_num; ++i) { struct page *page = t->pages[i]; struct page *dpage = e->pages[dpage_idx]; @@ -402,7 +402,7 @@ static int pohmelfs_hash(struct pohmelfs_crypto_thread *tc) { unsigned int i; dprintk("%s: ", __func__); - for (i=0; i<tc->psb->crypto_attached_size; ++i) + for (i = 0; i < tc->psb->crypto_attached_size; ++i) dprintka("%02x ", dst[i]); dprintka("\n"); } @@ -414,7 +414,7 @@ static void pohmelfs_crypto_pages_free(struct pohmelfs_crypto_engine *e) { unsigned int i; - for (i=0; i<e->page_num; ++i) + for (i = 0; i < e->page_num; ++i) __free_page(e->pages[i]); kfree(e->pages); } @@ -427,7 +427,7 @@ static int pohmelfs_crypto_pages_alloc(struct pohmelfs_crypto_engine *e, struct if (!e->pages) return -ENOMEM; - for (i=0; i<psb->trans_max_pages; ++i) { + for (i = 0; i < psb->trans_max_pages; ++i) { e->pages[i] = alloc_page(GFP_KERNEL); if (!e->pages[i]) break; @@ -612,7 +612,7 @@ static int pohmelfs_sys_crypto_init(struct pohmelfs_sb *psb) __func__, st, &st->eng, &st->eng.hash, &st->eng.cipher); } - for (i=0; i<psb->crypto_thread_num; ++i) { + for (i = 0; i < psb->crypto_thread_num; ++i) { err = -ENOMEM; t = kzalloc(sizeof(struct pohmelfs_crypto_thread), GFP_KERNEL); if (!t) @@ -780,7 +780,7 @@ int pohmelfs_crypto_init(struct pohmelfs_sb *psb) } static int pohmelfs_crypto_thread_get(struct pohmelfs_sb *psb, - int (* action)(struct pohmelfs_crypto_thread *t, void *data), void *data) + int (*action)(struct pohmelfs_crypto_thread *t, void *data), void *data) { struct pohmelfs_crypto_thread *t = NULL; int err; diff --git a/drivers/staging/pohmelfs/dir.c b/drivers/staging/pohmelfs/dir.c index 79819f0..059e9d2 100644 --- a/drivers/staging/pohmelfs/dir.c +++ b/drivers/staging/pohmelfs/dir.c @@ -105,7 +105,7 @@ static struct pohmelfs_name *pohmelfs_insert_hash(struct pohmelfs_inode *pi, if (ret) { printk("%s: exist: parent: %llu, ino: %llu, hash: %x, len: %u, data: '%s', " - "new: ino: %llu, hash: %x, len: %u, data: '%s'.\n", + "new: ino: %llu, hash: %x, len: %u, data: '%s'.\n", __func__, pi->ino, ret->ino, ret->hash, ret->len, ret->data, new->ino, new->hash, new->len, new->data); @@ -234,7 +234,7 @@ struct pohmelfs_inode *pohmelfs_new_inode(struct pohmelfs_sb *psb, int err = -EEXIST; dprintk("%s: creating inode: parent: %llu, ino: %llu, str: %p.\n", - __func__, (parent)?parent->ino:0, info->ino, str); + __func__, (parent) ? parent->ino : 0, info->ino, str); err = -ENOMEM; new = iget_locked(psb->sb, info->ino); @@ -265,8 +265,8 @@ struct pohmelfs_inode *pohmelfs_new_inode(struct pohmelfs_sb *psb, s.len = 2; s.hash = jhash(s.name, s.len, 0); - err = pohmelfs_add_dir(psb, npi, (parent)?parent:npi, &s, - (parent)?parent->vfs_inode.i_mode:npi->vfs_inode.i_mode, 0); + err = pohmelfs_add_dir(psb, npi, (parent) ? parent : npi, &s, + (parent) ? parent->vfs_inode.i_mode : npi->vfs_inode.i_mode, 0); if (err) goto err_out_put; } @@ -277,7 +277,7 @@ struct pohmelfs_inode *pohmelfs_new_inode(struct pohmelfs_sb *psb, err = pohmelfs_add_dir(psb, parent, npi, str, info->mode, link); dprintk("%s: %s inserted name: '%s', new_offset: %llu, ino: %llu, parent: %llu.\n", - __func__, (err)?"unsuccessfully":"successfully", + __func__, (err) ? "unsuccessfully" : "successfully", str->name, parent->total_len, info->ino, parent->ino); if (err && err != -EEXIST) @@ -605,7 +605,7 @@ struct pohmelfs_inode *pohmelfs_create_entry_local(struct pohmelfs_sb *psb, if (!start) info.ino = pohmelfs_new_ino(psb); - info.nlink = S_ISDIR(mode)?2:1; + info.nlink = S_ISDIR(mode) ? 2 : 1; info.uid = current_fsuid(); info.gid = current_fsgid(); info.size = 0; @@ -849,7 +849,7 @@ static int pohmelfs_create_link(struct pohmelfs_inode *parent, struct qstr *obj, } dprintk("%s: parent: %llu, obj: '%s', target_inode: %llu, target_str: '%s', full: '%s'.\n", - __func__, parent->ino, obj->name, (target)?target->ino:0, (tstr)?tstr->name:NULL, + __func__, parent->ino, obj->name, (target) ? target->ino : 0, (tstr) ? tstr->name : NULL, (char *)data); cmd->cmd = NETFS_LINK; diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c index 6327552..9286e86 100644 --- a/drivers/staging/pohmelfs/inode.c +++ b/drivers/staging/pohmelfs/inode.c @@ -685,7 +685,7 @@ static int pohmelfs_readpages_trans_complete(struct page **__pages, unsigned int goto err_out_free; } - for (i=0; i<num; ++i) { + for (i = 0; i < num; ++i) { page = pages[i]; if (err) @@ -1431,35 +1431,35 @@ static int pohmelfs_parse_options(char *options, struct pohmelfs_sb *psb, int re continue; switch (token) { - case pohmelfs_opt_idx: - psb->idx = option; - break; - case pohmelfs_opt_trans_scan_timeout: - psb->trans_scan_timeout = msecs_to_jiffies(option); - break; - case pohmelfs_opt_drop_scan_timeout: - psb->drop_scan_timeout = msecs_to_jiffies(option); - break; - case pohmelfs_opt_wait_on_page_timeout: - psb->wait_on_page_timeout = msecs_to_jiffies(option); - break; - case pohmelfs_opt_mcache_timeout: - psb->mcache_timeout = msecs_to_jiffies(option); - break; - case pohmelfs_opt_trans_retries: - psb->trans_retries = option; - break; - case pohmelfs_opt_crypto_thread_num: - psb->crypto_thread_num = option; - break; - case pohmelfs_opt_trans_max_pages: - psb->trans_max_pages = option; - break; - case pohmelfs_opt_crypto_fail_unsupported: - psb->crypto_fail_unsupported = 1; - break; - default: - return -EINVAL; + case pohmelfs_opt_idx: + psb->idx = option; + break; + case pohmelfs_opt_trans_scan_timeout: + psb->trans_scan_timeout = msecs_to_jiffies(option); + break; + case pohmelfs_opt_drop_scan_timeout: + psb->drop_scan_timeout = msecs_to_jiffies(option); + break; + case pohmelfs_opt_wait_on_page_timeout: + psb->wait_on_page_timeout = msecs_to_jiffies(option); + break; + case pohmelfs_opt_mcache_timeout: + psb->mcache_timeout = msecs_to_jiffies(option); + break; + case pohmelfs_opt_trans_retries: + psb->trans_retries = option; + break; + case pohmelfs_opt_crypto_thread_num: + psb->crypto_thread_num = option; + break; + case pohmelfs_opt_trans_max_pages: + psb->trans_max_pages = option; + break; + case pohmelfs_opt_crypto_fail_unsupported: + psb->crypto_fail_unsupported = 1; + break; + default: + return -EINVAL; } } @@ -1777,7 +1777,7 @@ static int pohmelfs_show_stats(struct seq_file *m, struct vfsmount *mnt) seq_printf(m, "%pi6:%u", &sin->sin6_addr, ntohs(sin->sin6_port)); } else { unsigned int i; - for (i=0; i<ctl->addrlen; ++i) + for (i = 0; i < ctl->addrlen; ++i) seq_printf(m, "%02x.", ctl->addr.addr[i]); } @@ -2035,7 +2035,7 @@ err_out_exit: static void __exit exit_pohmel_fs(void) { - unregister_filesystem(&pohmel_fs_type); + unregister_filesystem(&pohmel_fs_type); pohmelfs_destroy_inodecache(); pohmelfs_mcache_exit(); pohmelfs_config_exit(); diff --git a/drivers/staging/pohmelfs/net.c b/drivers/staging/pohmelfs/net.c index 4a86f0b..9279897 100644 --- a/drivers/staging/pohmelfs/net.c +++ b/drivers/staging/pohmelfs/net.c @@ -713,8 +713,8 @@ static int pohmelfs_crypto_cap_response(struct netfs_state *st) dprintk("%s: cipher '%s': %s, hash: '%s': %s.\n", __func__, - psb->cipher_string, (cap->cipher_strlen)?"SUPPORTED":"NOT SUPPORTED", - psb->hash_string, (cap->hash_strlen)?"SUPPORTED":"NOT SUPPORTED"); + psb->cipher_string, (cap->cipher_strlen) ? "SUPPORTED" : "NOT SUPPORTED", + psb->hash_string, (cap->hash_strlen) ? "SUPPORTED" : "NOT SUPPORTED"); if (!cap->hash_strlen) { if (psb->hash_strlen && psb->crypto_fail_unsupported) @@ -748,11 +748,11 @@ static int pohmelfs_capabilities_response(struct netfs_state *st) return err; switch (cmd->id) { - case POHMELFS_CRYPTO_CAPABILITIES: + case POHMELFS_CRYPTO_CAPABILITIES: return pohmelfs_crypto_cap_response(st); - case POHMELFS_ROOT_CAPABILITIES: + case POHMELFS_ROOT_CAPABILITIES: return pohmelfs_root_cap_response(st); - default: + default: break; } return -EINVAL; @@ -774,7 +774,7 @@ static int pohmelfs_getxattr_response(struct netfs_state *st) m = pohmelfs_mcache_search(psb, cmd->id); dprintk("%s: id: %llu, gen: %llu, err: %d.\n", - __func__, cmd->id, (m)?m->gen:0, error); + __func__, cmd->id, (m) ? m->gen : 0, error); if (!m) { printk("%s: failed to find getxattr cache entry: id: %llu.\n", __func__, cmd->id); @@ -824,7 +824,7 @@ int pohmelfs_data_lock_response(struct netfs_state *st) m = pohmelfs_mcache_search(psb, id); dprintk("%s: id: %llu, gen: %llu, err: %d.\n", - __func__, cmd->id, (m)?m->gen:0, err); + __func__, cmd->id, (m) ? m->gen : 0, err); if (!m) { pohmelfs_data_recv(st, st->data, cmd->size); @@ -915,7 +915,7 @@ static int pohmelfs_recv(void *data) unsigned char *hash = e->data; dprintk("%s: received hash: ", __func__); - for (i=0; i<cmd->csize; ++i) + for (i = 0; i < cmd->csize; ++i) printk("%02x ", hash[i]); printk("\n"); @@ -933,37 +933,37 @@ static int pohmelfs_recv(void *data) } switch (cmd->cmd) { - case NETFS_READ_PAGE: + case NETFS_READ_PAGE: err = pohmelfs_read_page_response(st); break; - case NETFS_READDIR: + case NETFS_READDIR: err = pohmelfs_readdir_response(st); break; - case NETFS_LOOKUP: + case NETFS_LOOKUP: err = pohmelfs_lookup_response(st); break; - case NETFS_CREATE: + case NETFS_CREATE: err = pohmelfs_create_response(st); break; - case NETFS_REMOVE: + case NETFS_REMOVE: err = pohmelfs_remove_response(st); break; - case NETFS_TRANS: + case NETFS_TRANS: err = pohmelfs_transaction_response(st); break; - case NETFS_PAGE_CACHE: + case NETFS_PAGE_CACHE: err = pohmelfs_page_cache_response(st); break; - case NETFS_CAPABILITIES: + case NETFS_CAPABILITIES: err = pohmelfs_capabilities_response(st); break; - case NETFS_LOCK: + case NETFS_LOCK: err = pohmelfs_data_lock_response(st); break; - case NETFS_XATTR_GET: + case NETFS_XATTR_GET: err = pohmelfs_getxattr_response(st); break; - default: + default: printk("%s: wrong cmd: %u, id: %llu, start: %llu, size: %u, ext: %u.\n", __func__, cmd->cmd, cmd->id, cmd->start, cmd->size, cmd->ext); netfs_state_reset(st); diff --git a/drivers/staging/pohmelfs/netfs.h b/drivers/staging/pohmelfs/netfs.h index 01cba00..63391d2 100644 --- a/drivers/staging/pohmelfs/netfs.h +++ b/drivers/staging/pohmelfs/netfs.h @@ -305,7 +305,7 @@ struct pohmelfs_inode { }; struct netfs_trans; -typedef int (* netfs_trans_complete_t)(struct page **pages, unsigned int page_num, +typedef int (*netfs_trans_complete_t)(struct page **pages, unsigned int page_num, void *private, int err); struct netfs_state; @@ -489,7 +489,7 @@ void pohmelfs_crypto_thread_make_ready(struct pohmelfs_crypto_thread *th); struct netfs_state { struct mutex __state_lock; /* Can not allow to use the same socket simultaneously */ struct mutex __state_send_lock; - struct netfs_cmd cmd; /* Cached command */ + struct netfs_cmd cmd; /* Cached command */ struct netfs_inode_info info; /* Cached inode info */ void *data; /* Cached some data */ @@ -500,9 +500,9 @@ struct netfs_state { struct task_struct *thread; /* Async receiving thread */ /* Waiting/polling machinery */ - wait_queue_t wait; - wait_queue_head_t *whead; - wait_queue_head_t thread_wait; + wait_queue_t wait; + wait_queue_head_t *whead; + wait_queue_head_t thread_wait; struct mutex trans_lock; struct rb_root trans_root; @@ -620,8 +620,8 @@ struct pohmelfs_sb { /* * Timed checks: stale transactions, inodes to be freed and so on. */ - struct delayed_work dwork; - struct delayed_work drop_dwork; + struct delayed_work dwork; + struct delayed_work drop_dwork; struct super_block *sb; @@ -911,7 +911,8 @@ static inline void pohmelfs_mcache_put(struct pohmelfs_sb *psb, pohmelfs_mcache_free(psb, m); } -//#define POHMELFS_TRUNCATE_ON_INODE_FLUSH +/*#define POHMELFS_TRUNCATE_ON_INODE_FLUSH + */ #endif /* __KERNEL__*/ |