From: Saul Wold <sgw@linux.intel.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH V4 3/4] connman: Add patches to fix connman on fs with no d_type support
Date: Tue, 17 Jul 2012 10:44:30 -0700 [thread overview]
Message-ID: <5005A47E.1040403@linux.intel.com> (raw)
In-Reply-To: <e969330666db04439a57a1bada8a315c1f71445a.1342544558.git.andrei@gherzan.ro>
On 07/17/2012 10:06 AM, Andrei Gherzan wrote:
> When there is not d_type avalaible on filesystem, fstatat (stat)
> can be used to check if the path is a directory.
> storage.c and timezone.c were modified accordingly.
>
> Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
> ---
> ...If-there-is-no-d_type-support-use-fstatat.patch | 57 ++++++++++++++++++++
> ...If-there-is-no-d_type-support-use-fstatat.patch | 45 ++++++++++++++++
> meta/recipes-connectivity/connman/connman_1.3.bb | 6 ++-
> 3 files changed, 106 insertions(+), 2 deletions(-)
> create mode 100644 meta/recipes-connectivity/connman/connman/0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch
> create mode 100644 meta/recipes-connectivity/connman/connman/0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch
>
These patches are missing Upstream-Status: and SOBs.
Thanks
Sau!
> diff --git a/meta/recipes-connectivity/connman/connman/0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch b/meta/recipes-connectivity/connman/connman/0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch
> new file mode 100644
> index 0000000..2e2f615
> --- /dev/null
> +++ b/meta/recipes-connectivity/connman/connman/0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch
> @@ -0,0 +1,57 @@
> +From f2094e6b2e4542adf458d8fa58d7bccd5edb762e Mon Sep 17 00:00:00 2001
> +From: Andrei Gherzan <andrei@gherzan.ro>
> +Date: Tue, 17 Jul 2012 17:27:39 +0300
> +Subject: [PATCH V3 1/2] timezone.c: If there is no d_type support use
> + fstatat()
> +
> +This is useful for filesystems where d_type is always DT_UNKNOWN.
> +In this case use fstatat() function.
> +---
> + src/timezone.c | 24 ++++++++++++++++++++++++
> + 1 file changed, 24 insertions(+)
> +
> +diff --git a/src/timezone.c b/src/timezone.c
> +index 173d658..f951f6b 100644
> +--- a/src/timezone.c
> ++++ b/src/timezone.c
> +@@ -157,6 +157,8 @@ static char *find_origin(void *src_map, struct stat *src_st,
> + DIR *dir;
> + struct dirent *d;
> + char *str, pathname[PATH_MAX];
> ++ struct stat buf;
> ++ int ret;
> +
> + if (subpath == NULL)
> + strncpy(pathname, basepath, sizeof(pathname));
> +@@ -205,6 +207,28 @@ static char *find_origin(void *src_map, struct stat *src_st,
> + return str;
> + }
> + break;
> ++ case DT_UNKNOWN:
> ++ /*
> ++ * If there is no d_type support use stat()
> ++ * to check if directory
> ++ */
> ++ ret = fstatat(dirfd(dir), d->d_name, &buf, 0);
> ++ if (ret < 0)
> ++ continue;
> ++ if (!(buf.st_mode & S_IFDIR))
> ++ continue;
> ++ if (subpath == NULL)
> ++ strncpy(pathname, d->d_name, sizeof(pathname));
> ++ else
> ++ snprintf(pathname, sizeof(pathname),
> ++ "%s/%s", subpath, d->d_name);
> ++
> ++ str = find_origin(src_map, src_st, basepath, pathname);
> ++ if (str != NULL) {
> ++ closedir(dir);
> ++ return str;
> ++ }
> ++ break;
> + }
> + }
> +
> +--
> +1.7.9.5
> +
> diff --git a/meta/recipes-connectivity/connman/connman/0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch b/meta/recipes-connectivity/connman/connman/0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch
> new file mode 100644
> index 0000000..0103e60
> --- /dev/null
> +++ b/meta/recipes-connectivity/connman/connman/0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch
> @@ -0,0 +1,45 @@
> +From 7007ef32a959ac4717c19339a24fd90a68638a19 Mon Sep 17 00:00:00 2001
> +From: Andrei Gherzan <andrei@gherzan.ro>
> +Date: Tue, 17 Jul 2012 16:07:17 +0300
> +Subject: [PATCH V3 2/2] storage.c: If there is no d_type support use
> + fstatat()
> +
> +This is useful for filesystems where d_type is always DT_UNKNOWN.
> +In this case use fstatat() function.
> +---
> + src/storage.c | 19 +++++++++++++++++++
> + 1 file changed, 19 insertions(+)
> +
> +diff --git a/src/storage.c b/src/storage.c
> +index 47bd0cb..0491a52 100644
> +--- a/src/storage.c
> ++++ b/src/storage.c
> +@@ -206,6 +206,25 @@ gchar **connman_storage_get_services()
> +
> + g_string_append_printf(result, "%s/", d->d_name);
> + break;
> ++ case DT_UNKNOWN:
> ++ /*
> ++ * If there is no d_type support use stat()
> ++ * to check if directory
> ++ */
> ++ ret = fstatat(dirfd(dir), d->d_name, &buf, 0);
> ++ if (ret < 0)
> ++ continue;
> ++ if (!(buf.st_mode & S_IFDIR))
> ++ continue;
> ++ str = g_strdup_printf("%s/%s/settings", STORAGEDIR,
> ++ d->d_name);
> ++ ret = stat(str, &buf);
> ++ g_free(str);
> ++ if (ret < 0)
> ++ continue;
> ++
> ++ g_string_append_printf(result, "%s/", d->d_name);
> ++ break;
> + }
> + }
> +
> +--
> +1.7.9.5
> +
> diff --git a/meta/recipes-connectivity/connman/connman_1.3.bb b/meta/recipes-connectivity/connman/connman_1.3.bb
> index 1e3d138..a98b46c 100644
> --- a/meta/recipes-connectivity/connman/connman_1.3.bb
> +++ b/meta/recipes-connectivity/connman/connman_1.3.bb
> @@ -5,6 +5,8 @@ SRCREV = "3c0fa84091524c7cd6237744f2088ffee2f1d5ad"
> SRC_URI = "git://git.kernel.org/pub/scm/network/connman/connman.git \
> file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
> file://add_xuser_dbus_permission.patch \
> - file://connman"
> + file://connman \
> + file://0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch \
> + file://0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch"
> S = "${WORKDIR}/git"
> -PR = "${INC_PR}.0"
> +PR = "${INC_PR}.1"
>
next prev parent reply other threads:[~2012-07-17 17:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-17 17:06 [PATCH V4 0/4] Update connman to v1.3, fix dependencies and runtime Andrei Gherzan
2012-07-17 17:06 ` [PATCH V4 1/4] connman: Update to version 1.3 Andrei Gherzan
2012-07-17 17:06 ` [PATCH V4 2/4] connman.inc: Add missing dependencies needed by some tests Andrei Gherzan
2012-07-17 17:06 ` [PATCH V4 3/4] connman: Add patches to fix connman on fs with no d_type support Andrei Gherzan
2012-07-17 17:44 ` Saul Wold [this message]
2012-07-17 17:06 ` [PATCH V4 4/4] connman: fix crashes on startup on PPC/MIPS Andrei Gherzan
2012-07-17 22:59 ` Saul Wold
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=5005A47E.1040403@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/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: link
Be 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.