Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0dbfed5 authored by Daniel Rosenberg's avatar Daniel Rosenberg Committed by Alistair Delva
Browse files

ANDROID: sdcardfs: Enable modular sdcardfs



Export the following symbols:

- copy_fs_struct
- free_fs_struct
- security_path_chown
- set_fs_pwd
- vfs_read
- vfs_write

These are needed to build sdcardfs as a module.

Test: HiKey/X15 + Pie + android-mainline,
      and HiKey + AOSP Maser + android-mainline,
      directories under /sdcard created,
      output of mount is right,
      CTS test collecting device infor works

Bug: 35142419
Change-Id: If6e14f0b3bdc858a9f684e6c209927a9232091f0
Signed-off-by: default avatarDaniel Rosenberg <drosen@google.com>
Signed-off-by: default avatarGuenter Roeck <groeck@chromium.org>
[astrachan: Folded the following changes into this patch:
            e19f69662df5 ("ANDROID: Revert "fs: unexport vfs_read and vfs_write"")
            17071a8e1e7d ("ANDROID: fs: Export free_fs_struct and set_fs_pwd")
            2e9a639597cd ("ANDROID: export security_path_chown")]
Signed-off-by: default avatarAlistair Strachan <astrachan@google.com>
Signed-off-by: default avatarYongqin Liu <yongqin.liu@linaro.org>
parent a9d65060
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ void set_fs_pwd(struct fs_struct *fs, const struct path *path)
	if (old_pwd.dentry)
		path_put(&old_pwd);
}
EXPORT_SYMBOL(set_fs_pwd);

static inline int replace_path(struct path *p, const struct path *old, const struct path *new)
{
@@ -91,6 +92,7 @@ void free_fs_struct(struct fs_struct *fs)
	path_put(&fs->pwd);
	kmem_cache_free(fs_cachep, fs);
}
EXPORT_SYMBOL(free_fs_struct);

void exit_fs(struct task_struct *tsk)
{
@@ -129,6 +131,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
	}
	return fs;
}
EXPORT_SYMBOL_GPL(copy_fs_struct);

int unshare_fs_struct(void)
{
+3 −0
Original line number Diff line number Diff line
@@ -469,6 +469,8 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
	return ret;
}

EXPORT_SYMBOL(vfs_read);

static ssize_t new_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
{
	struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
@@ -566,6 +568,7 @@ ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_

	return ret;
}
EXPORT_SYMBOL(vfs_write);

/* file_ppos returns &file->f_pos or NULL if file is stream */
static inline loff_t *file_ppos(struct file *file)
+1 −0
Original line number Diff line number Diff line
@@ -1058,6 +1058,7 @@ int security_path_chown(const struct path *path, kuid_t uid, kgid_t gid)
		return 0;
	return call_int_hook(path_chown, 0, path, uid, gid);
}
EXPORT_SYMBOL(security_path_chown);

int security_path_chroot(const struct path *path)
{