From: David Gow <davidgow@google.com> To: Brendan Higgins <brendanhiggins@google.com> Cc: valdis.kletnieks@vt.edu, linux-fsdevel@vger.kernel.org, devel@driverdev.osuosl.org, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org> Subject: Re: [PATCH v1] staging: exfat: fix multiple definition error of `rename_file' Date: Thu, 5 Dec 2019 09:50:59 -0800 [thread overview] Message-ID: <CABVgOSn7tTYuMZ8ArA3fRWp4aeKAcKJ3qNL+SgtFt5fkBLnc-A@mail.gmail.com> (raw) In-Reply-To: <20191204234522.42855-1-brendanhiggins@google.com> On Wed, Dec 4, 2019 at 3:46 PM Brendan Higgins <brendanhiggins@google.com> wrote: > > `rename_file' was exported but not properly namespaced causing a > multiple definition error because `rename_file' is already defined in > fs/hostfs/hostfs_user.c: > > ld: drivers/staging/exfat/exfat_core.o: in function `rename_file': > drivers/staging/exfat/exfat_core.c:2327: multiple definition of > `rename_file'; fs/hostfs/hostfs_user.o:fs/hostfs/hostfs_user.c:350: > first defined here > make: *** [Makefile:1077: vmlinux] Error 1 > > This error can be reproduced on ARCH=um by selecting: > > CONFIG_EXFAT_FS=y > CONFIG_HOSTFS=y > > Add a namespace prefix exfat_* to fix this error. > > Reported-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Brendan Higgins <brendanhiggins@google.com> > Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Tested-by: David Gow <davidgow@google.com> Reviewed-by: David Gow <davidgow@google.com> This works for me: I was able to reproduce the compile error without this patch, and successfully compile a UML kernel and mount an exfat fs after applying it. > --- > drivers/staging/exfat/exfat.h | 4 ++-- > drivers/staging/exfat/exfat_core.c | 4 ++-- > drivers/staging/exfat/exfat_super.c | 4 ++-- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/exfat/exfat.h b/drivers/staging/exfat/exfat.h > index 2aac1e000977e..51c665a924b76 100644 > --- a/drivers/staging/exfat/exfat.h > +++ b/drivers/staging/exfat/exfat.h > @@ -805,8 +805,8 @@ s32 create_dir(struct inode *inode, struct chain_t *p_dir, > s32 create_file(struct inode *inode, struct chain_t *p_dir, > struct uni_name_t *p_uniname, u8 mode, struct file_id_t *fid); > void remove_file(struct inode *inode, struct chain_t *p_dir, s32 entry); > -s32 rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry, > - struct uni_name_t *p_uniname, struct file_id_t *fid); > +s32 exfat_rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry, > + struct uni_name_t *p_uniname, struct file_id_t *fid); > s32 move_file(struct inode *inode, struct chain_t *p_olddir, s32 oldentry, > struct chain_t *p_newdir, struct uni_name_t *p_uniname, > struct file_id_t *fid); It seems a bit ugly to add the exfat_ prefix to just rename_file, rather than all of the above functions (e.g., create_dir, remove_file, etc). It doesn't look like any of the others are causing any issues though (while, for example, there is another remove_file in drivers/infiniband/hw/qib/qib_fs.c, it's static, so shouldn't be a problem). -- David
WARNING: multiple messages have this Message-ID (diff)
From: David Gow <davidgow@google.com> To: Brendan Higgins <brendanhiggins@google.com> Cc: linux-fsdevel@vger.kernel.org, devel@driverdev.osuosl.org, valdis.kletnieks@vt.edu, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org> Subject: Re: [PATCH v1] staging: exfat: fix multiple definition error of `rename_file' Date: Thu, 5 Dec 2019 09:50:59 -0800 [thread overview] Message-ID: <CABVgOSn7tTYuMZ8ArA3fRWp4aeKAcKJ3qNL+SgtFt5fkBLnc-A@mail.gmail.com> (raw) In-Reply-To: <20191204234522.42855-1-brendanhiggins@google.com> On Wed, Dec 4, 2019 at 3:46 PM Brendan Higgins <brendanhiggins@google.com> wrote: > > `rename_file' was exported but not properly namespaced causing a > multiple definition error because `rename_file' is already defined in > fs/hostfs/hostfs_user.c: > > ld: drivers/staging/exfat/exfat_core.o: in function `rename_file': > drivers/staging/exfat/exfat_core.c:2327: multiple definition of > `rename_file'; fs/hostfs/hostfs_user.o:fs/hostfs/hostfs_user.c:350: > first defined here > make: *** [Makefile:1077: vmlinux] Error 1 > > This error can be reproduced on ARCH=um by selecting: > > CONFIG_EXFAT_FS=y > CONFIG_HOSTFS=y > > Add a namespace prefix exfat_* to fix this error. > > Reported-by: Brendan Higgins <brendanhiggins@google.com> > Signed-off-by: Brendan Higgins <brendanhiggins@google.com> > Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Tested-by: David Gow <davidgow@google.com> Reviewed-by: David Gow <davidgow@google.com> This works for me: I was able to reproduce the compile error without this patch, and successfully compile a UML kernel and mount an exfat fs after applying it. > --- > drivers/staging/exfat/exfat.h | 4 ++-- > drivers/staging/exfat/exfat_core.c | 4 ++-- > drivers/staging/exfat/exfat_super.c | 4 ++-- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/exfat/exfat.h b/drivers/staging/exfat/exfat.h > index 2aac1e000977e..51c665a924b76 100644 > --- a/drivers/staging/exfat/exfat.h > +++ b/drivers/staging/exfat/exfat.h > @@ -805,8 +805,8 @@ s32 create_dir(struct inode *inode, struct chain_t *p_dir, > s32 create_file(struct inode *inode, struct chain_t *p_dir, > struct uni_name_t *p_uniname, u8 mode, struct file_id_t *fid); > void remove_file(struct inode *inode, struct chain_t *p_dir, s32 entry); > -s32 rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry, > - struct uni_name_t *p_uniname, struct file_id_t *fid); > +s32 exfat_rename_file(struct inode *inode, struct chain_t *p_dir, s32 old_entry, > + struct uni_name_t *p_uniname, struct file_id_t *fid); > s32 move_file(struct inode *inode, struct chain_t *p_olddir, s32 oldentry, > struct chain_t *p_newdir, struct uni_name_t *p_uniname, > struct file_id_t *fid); It seems a bit ugly to add the exfat_ prefix to just rename_file, rather than all of the above functions (e.g., create_dir, remove_file, etc). It doesn't look like any of the others are causing any issues though (while, for example, there is another remove_file in drivers/infiniband/hw/qib/qib_fs.c, it's static, so shouldn't be a problem). -- David _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
next prev parent reply other threads:[~2019-12-05 17:51 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-04 23:45 [PATCH v1] staging: exfat: fix multiple definition error of `rename_file' Brendan Higgins 2019-12-04 23:45 ` Brendan Higgins 2019-12-05 17:50 ` David Gow [this message] 2019-12-05 17:50 ` David Gow 2019-12-05 18:31 ` Brendan Higgins 2019-12-05 18:31 ` Brendan Higgins
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CABVgOSn7tTYuMZ8ArA3fRWp4aeKAcKJ3qNL+SgtFt5fkBLnc-A@mail.gmail.com \ --to=davidgow@google.com \ --cc=brendanhiggins@google.com \ --cc=devel@driverdev.osuosl.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=valdis.kletnieks@vt.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.