Thread (13 messages) 13 messages, 2 authors, 2014-01-29

[PATCH v3 1/2] init/do_mounts.c: ignore final \n in name_to_dev_t

From: akpm@linux-foundation.org (Andrew Morton)
Date: 2014-01-28 20:54:46
Also in: linux-pm, lkml

On Tue, 28 Jan 2014 10:59:26 -0800 Sebastian Capella [off-list ref] wrote:
quoted
Do you have any feedback for me on this?

I'm happy do make any changes you think are correct, but I'm unsure if
you're asking me for option #3 above.  It's quite an intrusive change,
and changes old, established code and I'd like confirmation that's what
you'd like before proceeding down that path.

I've submitted patches with both options #1 and #2 above.

Thanks,

Sebastian
Ping.

Sorry for the lapse in attention to this.

Could you please clarify what is needed for this to be acceptable?
I'm a little confused about what is being asked of me.
The problem is that kernel/power/hibernate.c:resume_store() is handed a
newline-terminated string, yes?  And if it blindly hands that string
over to name_to_dev_t(), name_to_dev_t() fails because the string is
wrong.

This is an oddity of the sysfs->kernel interface and altering
name_to_dev_t doesn't really seem appropriate for this problem - it
would be better to fix the caller to pass in the correct string.

Something like...

/*
 * Clean up a string which may have leading and/or trailing whitespace (as
 * defined by isspace()) by trimming off that whitespace.  Returns an address
 * which the caller must kfree(), or NULL on error.
 */
char *strim_copy(const char *s, gfp_t gfp)
{
	char *ret = kstrdup(skip_spaces(s), gfp);

	if (ret)
		strim(ret);
	return ret;
}
EXPORT_SYMBOL(strim_copy);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help