From: Erez Zadok Date: Fri, 23 Mar 2007 17:10:46 +0000 (-0400) Subject: Unionfs: Don't inline do_remount_{add,del,mode}_option X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=33aac7a4845d4a45bbebbc05de5072a0d92fc6f0;p=unionfs-3.4.y.git Unionfs: Don't inline do_remount_{add,del,mode}_option gcc4 decided to inline do_remount_{add,del,mode}_option creating an 600 byte stack abuser on a x86_64 test box. Reported by: Josef 'Jeff' Sipek Signed-off-by: Erez Zadok Signed-off-by: Josef 'Jeff' Sipek --- diff --git a/fs/unionfs/lookup.c b/fs/unionfs/lookup.c index 0572247092ce..0fc599329011 100644 --- a/fs/unionfs/lookup.c +++ b/fs/unionfs/lookup.c @@ -30,7 +30,7 @@ static int is_validname(const char *name) } /* The rest of these are utility functions for lookup. */ -static int is_opaque_dir(struct dentry *dentry, int bindex) +static noinline int is_opaque_dir(struct dentry *dentry, int bindex) { int err = 0; struct dentry *hidden_dentry; diff --git a/fs/unionfs/super.c b/fs/unionfs/super.c index ec5706b115f1..e6a6cc189115 100644 --- a/fs/unionfs/super.c +++ b/fs/unionfs/super.c @@ -148,9 +148,9 @@ static int unionfs_statfs(struct dentry *dentry, struct kstatfs *buf) } /* handle mode changing during remount */ -static int do_remount_mode_option(char *optarg, int cur_branches, - struct unionfs_data *new_data, - struct path *new_lower_paths) +static noinline int do_remount_mode_option(char *optarg, int cur_branches, + struct unionfs_data *new_data, + struct path *new_lower_paths) { int err = -EINVAL; int perms, idx; @@ -207,9 +207,9 @@ out: } /* handle branch deletion during remount */ -static int do_remount_del_option(char *optarg, int cur_branches, - struct unionfs_data *new_data, - struct path *new_lower_paths) +static noinline int do_remount_del_option(char *optarg, int cur_branches, + struct unionfs_data *new_data, + struct path *new_lower_paths) { int err = -EINVAL; int idx; @@ -268,10 +268,10 @@ out: } /* handle branch insertion during remount */ -static int do_remount_add_option(char *optarg, int cur_branches, - struct unionfs_data *new_data, - struct path *new_lower_paths, - int *high_branch_id) +static noinline int do_remount_add_option(char *optarg, int cur_branches, + struct unionfs_data *new_data, + struct path *new_lower_paths, + int *high_branch_id) { int err = -EINVAL; int perms;