diff options
Diffstat (limited to 'fs/ecryptfs/ecryptfs_kernel.h')
| -rw-r--r-- | fs/ecryptfs/ecryptfs_kernel.h | 40 | 
1 files changed, 38 insertions, 2 deletions
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h index 7e2c6f5d798..dd299b389d4 100644 --- a/fs/ecryptfs/ecryptfs_kernel.h +++ b/fs/ecryptfs/ecryptfs_kernel.h @@ -172,6 +172,19 @@ ecryptfs_get_key_payload_data(struct key *key)  #define ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX_SIZE 24  #define ECRYPTFS_ENCRYPTED_DENTRY_NAME_LEN (18 + 1 + 4 + 1 + 32) +#ifdef CONFIG_ECRYPT_FS_MESSAGING +# define ECRYPTFS_VERSIONING_MASK_MESSAGING (ECRYPTFS_VERSIONING_DEVMISC \ +					     | ECRYPTFS_VERSIONING_PUBKEY) +#else +# define ECRYPTFS_VERSIONING_MASK_MESSAGING 0 +#endif + +#define ECRYPTFS_VERSIONING_MASK (ECRYPTFS_VERSIONING_PASSPHRASE \ +				  | ECRYPTFS_VERSIONING_PLAINTEXT_PASSTHROUGH \ +				  | ECRYPTFS_VERSIONING_XATTR \ +				  | ECRYPTFS_VERSIONING_MULTKEY \ +				  | ECRYPTFS_VERSIONING_MASK_MESSAGING \ +				  | ECRYPTFS_VERSIONING_FILENAME_ENCRYPTION)  struct ecryptfs_key_sig {  	struct list_head crypt_stat_list;  	char keysig[ECRYPTFS_SIG_SIZE_HEX + 1]; @@ -399,7 +412,9 @@ struct ecryptfs_daemon {  	struct hlist_node euid_chain;  }; +#ifdef CONFIG_ECRYPT_FS_MESSAGING  extern struct mutex ecryptfs_daemon_hash_mux; +#endif  static inline size_t  ecryptfs_lower_header_size(struct ecryptfs_crypt_stat *crypt_stat) @@ -610,6 +625,7 @@ int  ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value,  		  size_t size, int flags);  int ecryptfs_read_xattr_region(char *page_virt, struct inode *ecryptfs_inode); +#ifdef CONFIG_ECRYPT_FS_MESSAGING  int ecryptfs_process_response(struct ecryptfs_daemon *daemon,  			      struct ecryptfs_message *msg, u32 seq);  int ecryptfs_send_message(char *data, int data_len, @@ -618,6 +634,24 @@ int ecryptfs_wait_for_response(struct ecryptfs_msg_ctx *msg_ctx,  			       struct ecryptfs_message **emsg);  int ecryptfs_init_messaging(void);  void ecryptfs_release_messaging(void); +#else +static inline int ecryptfs_init_messaging(void) +{ +	return 0; +} +static inline void ecryptfs_release_messaging(void) +{ } +static inline int ecryptfs_send_message(char *data, int data_len, +					struct ecryptfs_msg_ctx **msg_ctx) +{ +	return -ENOTCONN; +} +static inline int ecryptfs_wait_for_response(struct ecryptfs_msg_ctx *msg_ctx, +					     struct ecryptfs_message **emsg) +{ +	return -ENOMSG; +} +#endif  void  ecryptfs_write_header_metadata(char *virt, @@ -655,12 +689,11 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,  				     size_t offset_in_page, size_t size,  				     struct inode *ecryptfs_inode);  struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index); -int ecryptfs_exorcise_daemon(struct ecryptfs_daemon *daemon); -int ecryptfs_find_daemon_by_euid(struct ecryptfs_daemon **daemon);  int ecryptfs_parse_packet_length(unsigned char *data, size_t *size,  				 size_t *length_size);  int ecryptfs_write_packet_length(char *dest, size_t size,  				 size_t *packet_size_length); +#ifdef CONFIG_ECRYPT_FS_MESSAGING  int ecryptfs_init_ecryptfs_miscdev(void);  void ecryptfs_destroy_ecryptfs_miscdev(void);  int ecryptfs_send_miscdev(char *data, size_t data_size, @@ -669,6 +702,9 @@ int ecryptfs_send_miscdev(char *data, size_t data_size,  void ecryptfs_msg_ctx_alloc_to_free(struct ecryptfs_msg_ctx *msg_ctx);  int  ecryptfs_spawn_daemon(struct ecryptfs_daemon **daemon, struct file *file); +int ecryptfs_exorcise_daemon(struct ecryptfs_daemon *daemon); +int ecryptfs_find_daemon_by_euid(struct ecryptfs_daemon **daemon); +#endif  int ecryptfs_init_kthread(void);  void ecryptfs_destroy_kthread(void);  int ecryptfs_privileged_open(struct file **lower_file,  |