lkml.org 
[lkml]   [2020]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH 4/5] mm: shmem: Convert shmem_enabled_show to use sysfs_emit_at
    From
    Date
    On Sun, 2020-11-01 at 22:06 +0000, Matthew Wilcox wrote:
    > On Sun, Nov 01, 2020 at 01:43:13PM -0800, Joe Perches wrote:
    > > > Why did you change this?
    > >
    > > Are you asking about the function argument alignment or the commit message?
    >
    > The indentation. Don't change the fucking indentation, Joe.
    >
    > > > Look, this isn't performance sensitive code. Just do something simple.
    > > >
    > > > if (shmem_huge == values[i])
    > > > buf += sysfs_emit(buf, "[%s]",
    > > > shmem_format_huge(values[i]));
    > > > else
    > > > buf += sysfs_emit(buf, "%s",
    > > > shmem_format_huge(values[i]));
    > > > if (i == ARRAY_SIZE(values) - 1)
    > > > buf += sysfs_emit(buf, "\n");
    > > > else
    > > > buf += sysfs_emit(buf, " ");
    > > >
    > > > Shame there's no sysfs_emitc, but there you go.
    > >
    > > I think what's there is simple.
    >
    > Again, you're wrong.
    >
    > > And your suggested code doesn't work.
    > > sysfs_emit is used for single emits.
    > > sysfs_emit_at is used for multiple emits.
    >
    > Oh, ugh, sysfs_emit() should be able to work on a buffer that isn't
    > page aligned. Greg, how about this?
    >
    > +++ b/fs/sysfs/file.c
    > @@ -722,13 +722,13 @@ int sysfs_emit(char *buf, const char *fmt, ...)
    >  {
    >         va_list args;
    >         int len;
    > + int start = offset_in_page(buf);
    >  
    >
    > - if (WARN(!buf || offset_in_page(buf),
    > - "invalid sysfs_emit: buf:%p\n", buf))
    > + if (WARN(!buf, "invalid sysfs_emit: buf:%p\n", buf))
    >                 return 0;
    >  
    >
    >         va_start(args, fmt);
    > - len = vscnprintf(buf, PAGE_SIZE, fmt, args);
    > + len = vscnprintf(buf, PAGE_SIZE - start, fmt, args);
    >         va_end(args);
    >  
    >
    >         return len;
    >


    \
     
     \ /
      Last update: 2020-11-01 23:14    [W:3.395 / U:0.496 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site