)]}'
{
  "log": [
    {
      "commit": "a2db6842873c8e5a70652f278d469128cb52db70",
      "tree": "0415c6cfb33753c7a20e05d95e3ce485a60b1f41",
      "parents": [
        "e72ceb8ccac5f770b3e696e09bb673dca7024b20"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Feb 11 15:20:00 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Only take active references on attributes.\n\nIf we exclude directories and symlinks from the set of sysfs\ndirents where we need active references we are left with\nsysfs attributes (binary or not).\n\n- Tweak sysfs_deactivate to only do something on attributes\n- Move lockdep initialization into sysfs_file_add_mode to\n  limit it to just attributes.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e72ceb8ccac5f770b3e696e09bb673dca7024b20",
      "tree": "9868803df687838c3c5f6f2265ceb7532b93a5f4",
      "parents": [
        "3c31f07ad0dab02fe17195d32a965d57fd947707"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Feb 11 15:18:38 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:51 2010 -0800"
      },
      "message": "sysfs: Remove sysfs_get/put_active_two\n\nIt turns out that holding an active reference on a directory is\npointless.  The purpose of the active references are to allows us to\nblock when removing sysfs entries that have custom methods so we don\u0027t\nremove modules while running modular code and to keep those custom\nmethods from accessing data structures after the files have been\nremoved.  Further sysfs_remove_dir remove all elements in the\ndirectory before removing the directory itself, so there is no chance\nwe will remove a directory with active children.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1c205ae18db53ff72985dd79f3baaf2dbaba6db7",
      "tree": "ba2947326f34337b33c90391496b6e40089bc2ad",
      "parents": [
        "265d2e2e31c5f6dc1b20ae1653a17fdba706f79e"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jan 05 12:48:01 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:47 2010 -0800"
      },
      "message": "sysfs: Add sysfs_add/remove_files utility functions\n\nAdding/Removing a whole array of attributes is very common. Add a standard\nutility function to do this with a simple function call, instead of\nrequiring drivers to open code this.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "06fc0d66f7ed3a3b08e8fcf8c325ecf0b8f93fea",
      "tree": "a599fc1cabf3564745ac03bc3e70c7211dc8081e",
      "parents": [
        "e61ab4ae48fbf477f5b9fcbec9e1b8dc789920d0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Nov 20 16:08:54 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 11 11:24:54 2009 -0800"
      },
      "message": "sysfs: In sysfs_chmod_file lazily propagate the mode change.\n\nNow that sysfs_getattr and sysfs_permission refresh the vfs\ninode there is no need to immediatly push the mode change\ninto the vfs cache.  Reducing the amount of work needed and\nsimplifying the locking.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4c6974f51a981d14f13e36049d6307d3bcda550e",
      "tree": "608016b1dcdbf094732f06a2688a8af3d4d20d62",
      "parents": [
        "e8f077c8831528e2ec1ea6c8ba090e405fdcd0b7"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Nov 07 23:27:02 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 11 11:24:53 2009 -0800"
      },
      "message": "sysfs: Simplify sysfs_chmod_file semantics\n\nCurrently every caller of sysfs_chmod_file happens at either\nfile creation time to set a non-default mode or in response\nto a specific user requested space change in policy.  Making\ntimestamps of when the chmod happens and notification of\na file changing mode uninteresting.\n\nRemove the unnecessary time stamp and filesystem change\nnotification, and removes the last of the explicit inotify\nand donitfy support from sysfs.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "83db93f4de2d9ae441a491d1dc61c2204f0195de",
      "tree": "13fb296040c8284cf09f318923aa170212cc245d",
      "parents": [
        "a6a8357788d6a37f8ad0f7eb46b0a386b613abb9"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Sep 15 16:05:51 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 14 15:16:25 2009 -0700"
      },
      "message": "sysfs: Allow sysfs_notify_dirent to be called from interrupt context.\n\nsysfs_notify_dirent is a simple atomic operation that can be used to\nalert user-space that new data can be read from a sysfs attribute.\n\nUnfortunately it cannot currently be called from non-process context\nbecause of its use of spin_lock which is sometimes taken with\ninterrupts enabled.\n\nSo change all lockers of sysfs_open_dirent_lock to disable interrupts,\nthus making sysfs_notify_dirent safe to be called from non-process\ncontext (as drivers/md does in md_safemode_timeout).\n\nsysfs_get_open_dirent is (documented as being) only called from\nprocess context, so it uses spin_lock_irq.  Other places\nuse spin_lock_irqsave.\n\nThe usage for sysfs_notify_dirent in md_safemode_timeout was\nintroduced in 2.6.28, so this patch is suitable for that and more\nrecent kernels.\n\nReported-by: Joel Andres Granados \u003cjgranado@redhat.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "086a377edc969aea6c761176a7e4ff68f264d6fe",
      "tree": "81cd6a34fb12a3cfa00228bd5508b49bdbfc2c03",
      "parents": [
        "b5c42bc8db17db80917f99205a03c51f17354495"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu May 07 12:36:53 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 28 14:24:07 2009 -0700"
      },
      "message": "sysfs: file.c: use create_singlethread_workqueue()\n\nWe don\u0027t need a kernel thread per CPU for this application.\n\nAcked-by: Alex Chiang \u003cachiang@hp.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1af3557abdef34ee036a6de4cb79e24468544b8d",
      "tree": "f390d8d72bbba5302fcafb4c3666ac92469b488a",
      "parents": [
        "d094cbe998eb566d47552aa9d3c26c9123a7b858"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 09 13:53:22 2009 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Apr 16 16:17:09 2009 -0700"
      },
      "message": "sysfs: sysfs poll keep the poll rule of regular file.\n\nCurrently, following test programs don\u0027t finished.\n\n% ruby -e \u0027\nThread.new { sleep }\nFile.read(\"/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies\")\n\u0027\n\nstrace expose the reason.\n\n...\nopen(\"/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies\", O_RDONLY|O_LARGEFILE) \u003d 3\nioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf9fa6b8) \u003d -1 ENOTTY (Inappropriate ioctl for device)\nfstat64(3, {st_mode\u003dS_IFREG|0444, st_size\u003d4096, ...}) \u003d 0\n_llseek(3, 0, [0], SEEK_CUR)            \u003d 0\nselect(4, [3], NULL, NULL, NULL)        \u003d 1 (in [3])\nread(3, \"1400000 1300000 1200000 1100000 1\"..., 4096) \u003d 62\nselect(4, [3], NULL, NULL, NULL\n\n\nBecause Ruby (the scripting language) VM assume select system-call\nagainst regular file don\u0027t block.  it because SUSv3 says \"Regular files\nshall always poll TRUE for reading and writing\".  see\nhttp://www.opengroup.org/onlinepubs/009695399/functions/poll.html it\nseems valid assumption.\n\nBut sysfs_poll() don\u0027t keep this rule although sysfs file can read and\nwrite always.\n\nThis patch restore proper poll behavior to sysfs.\n/sys/block/md*/md/sync_action polling application and another sysfs\nupdating sensitive application still can use POLLERR and POLLPRI.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d110271e1f4140a9fb06d968b1afe9ca56a6064e",
      "tree": "eb9ecf34607b5bb40ed26e339c5185cdb341e92f",
      "parents": [
        "c19f83669a02d4fa047d0d40f518e90f6f19c4c6"
      ],
      "author": {
        "name": "Alex Chiang",
        "email": "achiang@hp.com",
        "time": "Wed Mar 25 15:11:36 2009 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Apr 16 16:17:08 2009 -0700"
      },
      "message": "sysfs: don\u0027t use global workqueue in sysfs_schedule_callback()\n\nA sysfs attribute using sysfs_schedule_callback() to commit suicide\nmay end up calling device_unregister(), which will eventually call\na driver\u0027s -\u003eremove function.\n\nDrivers may call flush_scheduled_work() in their shutdown routines,\nin which case lockdep will complain with something like the following:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible recursive locking detected ]\n  2.6.29-rc8-kk #1\n  ---------------------------------------------\n  events/4/56 is trying to acquire lock:\n  (events){--..}, at: [\u003cffffffff80257fc0\u003e] flush_workqueue+0x0/0xa0\n\n  but task is already holding lock:\n  (events){--..}, at: [\u003cffffffff80257648\u003e] run_workqueue+0x108/0x230\n\n  other info that might help us debug this:\n  3 locks held by events/4/56:\n  #0:  (events){--..}, at: [\u003cffffffff80257648\u003e] run_workqueue+0x108/0x230\n  #1:  (\u0026ss-\u003ework){--..}, at: [\u003cffffffff80257648\u003e] run_workqueue+0x108/0x230\n  #2:  (pci_remove_rescan_mutex){--..}, at: [\u003cffffffff803c10d1\u003e] remove_callback+0x21/0x40\n\n  stack backtrace:\n  Pid: 56, comm: events/4 Not tainted 2.6.29-rc8-kk #1\n  Call Trace:\n  [\u003cffffffff8026dfcd\u003e] validate_chain+0xb7d/0x1260\n  [\u003cffffffff8026eade\u003e] __lock_acquire+0x42e/0xa40\n  [\u003cffffffff8026f148\u003e] lock_acquire+0x58/0x80\n  [\u003cffffffff80257fc0\u003e] ? flush_workqueue+0x0/0xa0\n  [\u003cffffffff8025800d\u003e] flush_workqueue+0x4d/0xa0\n  [\u003cffffffff80257fc0\u003e] ? flush_workqueue+0x0/0xa0\n  [\u003cffffffff80258070\u003e] flush_scheduled_work+0x10/0x20\n  [\u003cffffffffa0144065\u003e] e1000_remove+0x55/0xfe [e1000e]\n  [\u003cffffffff8033ee30\u003e] ? sysfs_schedule_callback_work+0x0/0x50\n  [\u003cffffffff803bfeb2\u003e] pci_device_remove+0x32/0x70\n  [\u003cffffffff80441da9\u003e] __device_release_driver+0x59/0x90\n  [\u003cffffffff80441edb\u003e] device_release_driver+0x2b/0x40\n  [\u003cffffffff804419d6\u003e] bus_remove_device+0xa6/0x120\n  [\u003cffffffff8043e46b\u003e] device_del+0x12b/0x190\n  [\u003cffffffff8043e4f6\u003e] device_unregister+0x26/0x70\n  [\u003cffffffff803ba969\u003e] pci_stop_dev+0x49/0x60\n  [\u003cffffffff803baab0\u003e] pci_remove_bus_device+0x40/0xc0\n  [\u003cffffffff803c10d9\u003e] remove_callback+0x29/0x40\n  [\u003cffffffff8033ee4f\u003e] sysfs_schedule_callback_work+0x1f/0x50\n  [\u003cffffffff8025769a\u003e] run_workqueue+0x15a/0x230\n  [\u003cffffffff80257648\u003e] ? run_workqueue+0x108/0x230\n  [\u003cffffffff8025846f\u003e] worker_thread+0x9f/0x100\n  [\u003cffffffff8025bce0\u003e] ? autoremove_wake_function+0x0/0x40\n  [\u003cffffffff802583d0\u003e] ? worker_thread+0x0/0x100\n  [\u003cffffffff8025b89d\u003e] kthread+0x4d/0x80\n  [\u003cffffffff8020d4ba\u003e] child_rip+0xa/0x20\n  [\u003cffffffff8020cebc\u003e] ? restore_args+0x0/0x30\n  [\u003cffffffff8025b850\u003e] ? kthread+0x0/0x80\n  [\u003cffffffff8020d4b0\u003e] ? child_rip+0x0/0x20\n\nAlthough we know that the device_unregister path will never acquire\na lock that a driver might try to acquire in its -\u003eremove, in general\nwe should never attempt to flush a workqueue from within the same\nworkqueue, and lockdep rightly complains.\n\nSo as long as sysfs attributes cannot commit suicide directly and we\nare stuck with this callback mechanism, put the sysfs callbacks on\ntheir own workqueue instead of the global one.\n\nThis has the side benefit that if a suicidal sysfs attribute kicks\noff a long chain of -\u003eremove callbacks, we no longer induce a long\ndelay on the global queue.\n\nThis also fixes a missing module_put in the error path introduced\nby sysfs-only-allow-one-scheduled-removal-callback-per-kobj.patch.\n\nWe never destroy the workqueue, but I\u0027m not sure that\u0027s a\nproblem.\n\nReported-by: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nTested-by: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nSigned-off-by: Alex Chiang \u003cachiang@hp.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "669420644c79c207f83fdf9105ae782867e2991f",
      "tree": "668491b3700bcc65e45d5ff9471f6fde5d5743af",
      "parents": [
        "ffa6a7054d172a2f57248dff2de600ca795c5656"
      ],
      "author": {
        "name": "Alex Chiang",
        "email": "achiang@hp.com",
        "time": "Fri Mar 13 12:07:36 2009 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:26 2009 -0700"
      },
      "message": "sysfs: only allow one scheduled removal callback per kobj\n\nThe only way for a sysfs attribute to remove itself (without\ndeadlock) is to use the sysfs_schedule_callback() interface.\n\nVegard Nossum discovered that a poorly written sysfs -\u003estore\ncallback can repeatedly schedule remove callbacks on the same\ndevice over and over, e.g.\n\n\t$ while true ; do echo 1 \u003e /sys/devices/.../remove ; done\n\nIf the \u0027remove\u0027 attribute uses the sysfs_schedule_callback API\nand also does not protect itself from concurrent accesses, its\ncallback handler will be called multiple times, and will\neventually attempt to perform operations on a freed kobject,\nleading to many problems.\n\nInstead of requiring all callers of sysfs_schedule_callback to\nimplement their own synchronization, provide the protection in\nthe infrastructure.\n\nNow, sysfs_schedule_callback will only allow one scheduled\ncallback per kobject. On subsequent calls with the same kobject,\nreturn -EAGAIN.\n\nThis is a short term fix. The long term fix is to allow sysfs\nattributes to remove themselves directly, without any of this\ncallback hokey pokey.\n\n[cornelia.huck@de.ibm.com: s390 ccwgroup bits]\n\nReported-by: vegard.nossum@gmail.com\nSigned-off-by: Alex Chiang \u003cachiang@hp.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8c0e3998f5b71e68fe6b6e489a92e052715e563c",
      "tree": "df57b05090964df2138c8b59d3796c8509e92ed5",
      "parents": [
        "d8bf254089a6c31d7d01a4d1d2f1861662900855"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "tpiepho@freescale.com",
        "time": "Thu Sep 25 16:45:13 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:51 2008 -0700"
      },
      "message": "sysfs: Make dir and name args to sysfs_notify() const\n\nBecause they can be, and because code like this produces a warning if\nthey\u0027re not:\n\nstruct device_attribute dev_attr;\n\nsysfs_notify(\u0026kobj, NULL, dev_attr.attr.name);\n\nSigned-off-by: Trent Piepho \u003ctpiepho@freescale.com\u003e\nCC: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f1282c844e86db5a041afa41335b5f9eea6cec0c",
      "tree": "3736285f2f7ce145fb06538d616a9c1165ffc125",
      "parents": [
        "ec748fa9ed3fec44aeebbf86ae050b0cc7a978d9"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Jul 16 08:58:04 2008 +1000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:47 2008 -0700"
      },
      "message": "sysfs: Support sysfs_notify from atomic context with new sysfs_notify_dirent\n\nSupport sysfs_notify from atomic context with new sysfs_notify_dirent\n\nsysfs_notify currently takes sysfs_mutex.\nThis means that it cannot be called in atomic context.\nsysfs_mutex  is sometimes held over a malloc (sysfs_rename_dir)\nso it can block on low memory.\n\nIn md I want to be able to notify on a sysfs attribute from\natomic context, and I don\u0027t want to block on low memory because I\ncould be in the writeout path for freeing memory.\n\nSo:\n - export the \"sysfs_dirent\" structure along with sysfs_get, sysfs_put\n   and sysfs_get_dirent so I can get the sysfs_dirent that I want to\n   notify on and hold it in an md structure.\n - split sysfs_notify_dirent out of sysfs_notify so the sysfs_dirent\n   can be notified on with no blocking (just a spinlock).\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ae87221d3ce49d9de1e43756da834fd0bf05a2ad",
      "tree": "f96792656b00e95c307f3f37369c98a85ce38207",
      "parents": [
        "e94320939f44e0cbaccc3f259a5778abced4949c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Aug 24 16:11:54 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:41 2008 -0700"
      },
      "message": "sysfs: crash debugging\n\nPrint the name of the last-accessed sysfs file when we oops, to help track\ndown oopses which occur in sysfs store/read handlers.  Because these oopses\ntend to not leave any trace of the offending code in the stack traces.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "99fcd77d15357e8ba51005c25cc750b9c28b2688",
      "tree": "403293819dc7bcd854c50d8c486a1fdbbf9711a2",
      "parents": [
        "5c752ad9f35910ff1912b3f3ae82878178ddc432"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in fs/sysfs\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message becomes\npart of the warning section for better reporting/collection.  Also, with this,\none fo the if() sections collapses entirely into the WARN().\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93265d13ea5c3ec5f61a8009407fbe046ce6b7c0",
      "tree": "1db94fa6cc1ee9b0eae1332a340ac98efa4d8f28",
      "parents": [
        "838ea8e8dbfc8d907c7a55bbad507a44c1b81d57"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 16 13:46:47 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:57 2008 -0700"
      },
      "message": "sysfs: don\u0027t call notify_change\n\nsysfs_chmod_file() calls notify_change() to change the permission bits\non a sysfs file.  Replace with explicit call to sysfs_setattr() and\nfsnotify_change().\n\nThis is equivalent, except that security_inode_setattr() is not\ncalled.  This function is called by drivers, so the security checks do\nnot make any sense.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f4238958d28044b335644b69df6071cdb04b5ce",
      "tree": "159b82f8eb9479cdc10f861d682309b4c0c8c411",
      "parents": [
        "bbd1ae412c9eb09ae7bb11cfaf7018a2367d493f"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 20 20:47:52 2008 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Apr 22 15:16:31 2008 -0500"
      },
      "message": "[SCSI] sysfs: make group is_valid return a mode_t\n\nWe have a problem in scsi_transport_spi in that we need to customise\nnot only the visibility of the attributes, but also their mode.  Fix\nthis by making the is_visible() callback return a mode, with 0\nindicating is not visible.\n\nAlso add a sysfs_update_group() API to allow us to change either the\nvisibility or mode of the files at any time on the fly.\n\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "2424b5dd062cbe3e0578ae7b11a1b360ad22f451",
      "tree": "75b6d67412969074237a371947280b419c5d43db",
      "parents": [
        "b844eba292b477cda14582bfc6f535deed57a82d"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Apr 07 15:35:01 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:29 2008 -0700"
      },
      "message": "sysfs: refill attribute buffer when reading from offset 0\n\nRequiring userspace to close and re-open sysfs attributes has been the\npolicy since before 2.6.12.  It allows userspace to get a consistent\nsnapshot of kernel state and consume it with incremental reads and seeks.\n\nNow, if the file position is zero the kernel assumes userspace wants to see\nthe new value.  The application for this change is to allow a userspace\nRAID metadata handler to check the state of an array without causing any\nmemory allocations.  Thus not causing writeback to a raid array that might\nbe blocked waiting for userspace to take action.\n\nCc: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "c6f87733823d69a8f12e391688ceeb1ff4922530",
      "tree": "2061036d1d015167a4de9e2c3a14810e6409f18f",
      "parents": [
        "3f62e5700b2a679ae987b32a68126dd6dcf2488f"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Thu Mar 13 22:41:52 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:27 2008 -0700"
      },
      "message": "SYSFS: Explicitly include required header file slab.h.\n\nAfter an experimental deletion of the unnecessary inclusion of\n\u003clinux/slab.h\u003e from the header file \u003clinux/percpu.h\u003e, the following\nfiles under fs/sysfs were exposed as needing to explicitly include\n\u003clinux/slab.h\u003e.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "815d2d50da41f28aae58f5e9b3c61c3094422749",
      "tree": "f5c3a8f1cd676ef7ed76ea6cc96ccf399310f7fb",
      "parents": [
        "c9698d6b1a90929e427a165bd8283f803f57d9bd"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Mar 04 15:09:07 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 24 22:33:49 2008 -0700"
      },
      "message": "driver core: debug for bad dev_attr_show() return value.\n\nTry to find the culprit who caused\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10150\n\nCc: \u003cbalajirrao@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9b73e76f3cf63379dcf45fcd4f112f5812418d0a",
      "tree": "4e6bef87cd0cd6d848fc39a5ae25b981dbbe035b",
      "parents": [
        "50d9a126240f9961cfdd063336bbeb91f77a7dce",
        "23c3e290fb9ce38cabc2822b47583fc8702411bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)\n  [SCSI] usbstorage: use last_sector_bug flag universally\n  [SCSI] libsas: abstract STP task status into a function\n  [SCSI] ultrastor: clean up inline asm warnings\n  [SCSI] aic7xxx: fix firmware build\n  [SCSI] aacraid: fib context lock for management ioctls\n  [SCSI] ch: remove forward declarations\n  [SCSI] ch: fix device minor number management bug\n  [SCSI] ch: handle class_device_create failure properly\n  [SCSI] NCR5380: fix section mismatch\n  [SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices\n  [SCSI] IB/iSER: add logical unit reset support\n  [SCSI] don\u0027t use __GFP_DMA for sense buffers if not required\n  [SCSI] use dynamically allocated sense buffer\n  [SCSI] scsi.h: add macro for enclosure bit of inquiry data\n  [SCSI] sd: add fix for devices with last sector access problems\n  [SCSI] fix pcmcia compile problem\n  [SCSI] aacraid: add Voodoo Lite class of cards.\n  [SCSI] aacraid: add new driver features flags\n  [SCSI] qla2xxx: Update version number to 8.02.00-k7.\n  [SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.\n  ...\n"
    },
    {
      "commit": "000f2a4d8cfc1e1cbc0aa98136015e7ae7719b46",
      "tree": "f501a2d118797a88184a77be089d335c4cc48e88",
      "parents": [
        "4443d07fcfab39c4d2d9d7711cff983f15b374fc"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Nov 02 13:47:53 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:22 2008 -0800"
      },
      "message": "Driver Core: kill subsys_attribute and default sysfs ops\n\nRemove the no longer needed subsys_attributes, they are all converted to\nthe more sensical kobj_attributes.\n\nThere is no longer a magic fallback in sysfs attribute operations, all\nkobjects which create simple attributes need explicitely a ktype\nassigned, which tells the core what was intended here.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "3514faca19a6fdc209734431c509631ea92b094e",
      "tree": "f6d102e6dec276f8e8d1044b47c74a02b901554f",
      "parents": [
        "c11c4154e7ff4cebfadad849b1e22689d759c3f4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 16 10:11:44 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:10 2008 -0800"
      },
      "message": "kobject: remove struct kobj_type from struct kset\n\nWe don\u0027t need a \"default\" ktype for a kset.  We should set this\nexplicitly every time for each kset.  This change is needed so that we\ncan make ksets dynamic, and cleans up one of the odd, undocumented\nassumption that the kset/kobject/ktype model has.\n\nThis patch is based on a lot of help from Kay Sievers.\n\nNasty bug in the block code was found by Dave Young\n\u003chidave.darkstar@gmail.com\u003e\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d7b37889650bb316f5c4ad4b0569ba897120d70d",
      "tree": "33a0b024eca4d1b3130b079b10942ee7af364d33",
      "parents": [
        "2f90a851800e88436873c8d27238cf219b9ef48e"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Nov 21 14:55:19 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:08 2008 -0800"
      },
      "message": "sysfs: remove SPIN_LOCK_UNLOCKED\n\nSPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "11f24fbdf511cf588c3a18e3208ee02d85db0020",
      "tree": "08b4367c7601b687edc8150be17989beb2230119",
      "parents": [
        "d0ad3bc97c06fba5d37b4ca03c03b7eeeda39c47"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 02 18:44:05 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 11:29:17 2008 -0600"
      },
      "message": "[SCSI] sysfs: fix the sysfs_add_file_to_group interfaces\n\nI can\u0027t see a reason why these shouldn\u0027t work on every group.  However,\nthey only seem to work on named groups.  This patch allows the group\nfunctions to work on anonymous groups (those with NULL names).\n\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8118a859dc7abd873193986c77a8d9bdb877adc8",
      "tree": "6b66719637ba2b4174c126cb751a090de0536269",
      "parents": [
        "71409a498e96a421bdc20e7275ebc4fab8b14cdc"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 21 14:55:19 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 28 13:53:53 2007 -0800"
      },
      "message": "sysfs: fix off-by-one error in fill_read_buffer()\n\nI found that there is a off-by-one problem in the following code.\n\nVersion:\t2.6.24-rc2\nFile:\t\tfs/sysfs/file.c:118-122\nFunction:\tfill_read_buffer\n--------------------------------------------------------------------\n\tcount \u003d ops-\u003eshow(kobj, attr_sd-\u003es_attr.attr, buffer-\u003epage);\n\n\tsysfs_put_active_two(attr_sd);\n\n\tBUG_ON(count \u003e (ssize_t)PAGE_SIZE);\n--------------------------------------------------------------------\n\nBecause according to the specification of the sysfs and the implement of\nthe show methods, the show methods return the number of bytes which would\nbe generated for the given input, excluding the trailing null.So if the\nreturn value of the show methods equals PAGE_SIZE - 1, the buffer is full\nin fact.  And if the return value equals PAGE_SIZE, the resulting string\nwas already truncated,or buffer overflow occurred.\n\nThis patch fixes an off-by-one error in fill_read_buffer.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3932bf60590064dbd1d5bc6f19faf4469e964082",
      "tree": "e0a327410e140c724124654401b5e567c85e72ee",
      "parents": [
        "80abe55b53028bd082bdc69c497fe734e6057538"
      ],
      "author": {
        "name": "Chris Malley",
        "email": "mail@chrismalley.co.uk",
        "time": "Sat Oct 20 03:14:32 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 03:14:32 2007 +0200"
      },
      "message": "sysfs: trivial: fix sysfs_create_file kerneldoc spelling mistake\n\nSpelling error in sysfs_create_file kerneldoc.\n\nSigned-off-by: Chris Malley \u003cmail@chrismalley.co.uk\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "6d66f5cd26e4c482e986130b7572f2735a0f7e8b",
      "tree": "b35a4c00af8b2120a672dc19cb09006d5d000a9f",
      "parents": [
        "f0e7e1bd77d450ebfa12153b90f93ad46616ab4a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 17:31:38 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:12 2007 -0700"
      },
      "message": "sysfs: add copyrights\n\nSysfs has gone through considerable amount of reimplementation.  Add\ncopyrights.  Any objections?  :-)\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a4e8b912541d5372ae049a3b7c1979968e52c40b",
      "tree": "a95937748b6216f914abe55ed47c2627e7856bf7",
      "parents": [
        "85a4ffad3de77177591f7c2c18c26c3c8dd28bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:12 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:11 2007 -0700"
      },
      "message": "sysfs: move sysfs file poll implementation to sysfs_open_dirent\n\nSysfs file poll implementation is scattered over sysfs and kobject.\nEvent numbering is done in sysfs_dirent but wait itself is done on\nkobject.  This not only unecessarily bloats both kobject and\nsysfs_dirent but is also buggy - if a sysfs_dirent is removed while\nthere still are pollers, the associaton betwen the kobject and\nsysfs_dirent breaks and kobject may be freed with the pollers still\nsleeping on it.\n\nThis patch moves whole poll implementation into sysfs_open_dirent.\nEach time a sysfs_open_dirent is created, event number restarts from 1\nand pollers sleep on sysfs_open_dirent.  As event sequence number is\nmeaningless without any open file and pollers should have open file\nand thus sysfs_open_dirent, this ephemeral event counting works and is\na saner implementation.\n\nThis patch fixes the dnagling sleepers bug and reduces the sizes of\nkobject and sysfs_dirent by one pointer.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "85a4ffad3de77177591f7c2c18c26c3c8dd28bff",
      "tree": "3c67b1435dfd9a5b56d39235f1b44769f96f0fcc",
      "parents": [
        "bc747f37a0f089b9366f7385ff870e12911f2383"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:12 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:11 2007 -0700"
      },
      "message": "sysfs: implement sysfs_open_dirent\n\nImplement sysfs_open_dirent which represents an open file (attribute)\nsysfs_dirent.  A file sysfs_dirent with one or more open files have\none sysfs_dirent and all sysfs_buffers (one for each open instance)\nare linked to it.\n\nsysfs_open_dirent doesn\u0027t actually do anything yet but will be used to\noff-load things which are specific for open file sysfs_dirent from it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b1fc3d6144d56360d1373b01c7881826f558b6cd",
      "tree": "3bac4c3df21dc74c6373c3e4a22c3ea6b01b1832",
      "parents": [
        "078ce6409ca54d5fc6eb7d2147cd6efc3eb09078"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:11 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:10 2007 -0700"
      },
      "message": "sysfs: make s_elem an anonymous union\n\nMake s_elem an anonymous union.  Prefixing with s_elem makes things\nneedlessly longer without any advantage.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "50ab1a72863b1ad4b117862bc52610f8d4535609",
      "tree": "41a30dce0ef44917f16d2bc5cdf23cc26f4fac3a",
      "parents": [
        "b05f0548dabd20433f8c201a0307103721d6a18b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:10 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:10 2007 -0700"
      },
      "message": "sysfs: kill unnecessary NULL pointer check in sysfs_release()\n\nIn sysfs_release(), sysfs_buffer pointed to by filp-\u003eprivate_data is\nguaranteed to exist.  Kill the unnecessary NULL check.  This also\nmakes the code more consistent with the counterpart in fs/sysfs/bin.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b05f0548dabd20433f8c201a0307103721d6a18b",
      "tree": "1dd741ce7ee0a05f20b4b1469f03b378c8ee9ed1",
      "parents": [
        "b13dc89c5a5bd5e34aadb44c0fb7e870959dcd06"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:10 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:10 2007 -0700"
      },
      "message": "sysfs: kill unnecessary sysfs_get() in open paths\n\nThere\u0027s no reason to get an extra reference to sysfs_dirent for an\nopen file.  Open file has a reference to the dentry which in turn has\na reference to sysfs_dirent.  This is fairly obvious as otherwise open\nitself won\u0027t be able to access the sysfs_dirent.  Kill the extra\nsysfs_get() and matching sysfs_put().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5a7ad7f044941316dc98eda2a087a12a7a50649d",
      "tree": "03b61af0e90dc158df43f24f8a38792d8c6ae651",
      "parents": [
        "59f69015684b3de7b9472be9a81b1a978f93a496"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:10 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:09 2007 -0700"
      },
      "message": "sysfs: kill sysfs_update_file()\n\nsysfs_update_file() depends on inode-\u003ei_mtime but sysfs iondes are now\nreclaimable making the reported modification time unreliable.  There\u0027s\nonly one user (pci hotplug) of this notification mechanism and it\nreportedly isn\u0027t utilized from userland.\n\nKill sysfs_update_file().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f88123eaf953f13a0c597dde54745d28f81236de",
      "tree": "d737f3d4a79055d9d6c8ab5df0c564ea6a89ec8a",
      "parents": [
        "181b2e4be1603ce3ccace8322047a548f29f4b20"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Sep 20 16:05:10 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:09 2007 -0700"
      },
      "message": "sysfs: fix sysfs_chmod_file() such that it updates sd-\u003es_mode too\n\nsysfs_chmod_file() looked and updated only inode of the target file.\nDentry and inode are reclaimable and the update mode data will go away\nwhen the inode is reclaimed.  This patch makes sysfs_chmod_file()\nupdate sd-\u003es_mode too such that the change is permanent.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "932ea2e374dd1ca26676297a5eccd1cdab86f7cd",
      "tree": "83bba794de7f1f9f9290192f4f95a8ed9c91dfb6",
      "parents": [
        "89bec09705d2033b8b765f3c3ac5093f80bd5bc4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Aug 20 21:36:30 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:08 2007 -0700"
      },
      "message": "sysfs: Introduce sysfs_rename_mutex\n\nLooking carefully at the rename code we have a subtle dependency\nthat the structure of sysfs not change while we are performing\na rename.  If the parent directory of the object we are renaming\nchanges while the rename is being performed nasty things could\nhappen when we go to release our locks.\n\nSo introduce a sysfs_rename_mutex to prevent this highly\nunlikely theoretical issue.\n\nIn addition hold sysfs_rename_mutex over all calls to\nsysfs_get_dentry. Allowing sysfs_get_dentry to be simplified\nin the future.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a93720eeb4b3bedc1fe15e4b6ca364e6be577d20",
      "tree": "a34d58b175bd60f3ac1bb53c1427298e6cee1b2f",
      "parents": [
        "b4d1eb2ccecb76bce4c2125c5a3e77753fcfaeb0"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Fri Aug 10 13:51:07 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:06 2007 -0700"
      },
      "message": "sysfs: Fix typos in fs/sysfs/file.c\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "23dc279950a056c33a14d09cf759f5173d41abd9",
      "tree": "852f8cc24c24988717dbae8f98da999ff27755fa",
      "parents": [
        "41fc1c27452e041a18e5141b8203ee0ea72bc483"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 02 21:38:03 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:04 2007 -0700"
      },
      "message": "sysfs: make sysfs_add_one() automatically check for duplicate entry\n\nMake sysfs_add_one() check for duplicate entry and return -EEXIST if\nsuch entry exists.  This simplifies node addition code a bit.\n\nThis patch doesn\u0027t introduce any noticeable behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "41fc1c27452e041a18e5141b8203ee0ea72bc483",
      "tree": "fc81138ca37182c25931818681630c90b018b127",
      "parents": [
        "ff869de7bf5e76adffebd3a176c1c73bca7eddb7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 02 21:38:03 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:03 2007 -0700"
      },
      "message": "sysfs: make sysfs_add/remove_one() call link/unlink_sibling() implictly\n\nWhen adding or removing a sysfs_dirent, the user used to be required\nto call link/unlink separately.  It was for two reasons - code looked\nlike that before sysfs_addrm_cxt conversion and to avoid looping\nthrough parent_sd-\u003echildren list twice during removal.\n\nPerformance optimization during removal just isn\u0027t worth it.  Make\nsysfs_add/remove_one() call sysfs_link/unlink_sibing() implicitly.\nThis makes code simpler albeit slightly less efficient.  This change\ndoesn\u0027t introduce any noticeable behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "52e8c209d6d2bae6766b9940a107c73e943583f1",
      "tree": "e18ec771685c47b233310fa470f66bd4e402aeb8",
      "parents": [
        "2ebefc50161a0a1cdebccd62be749e72abdbec37"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Thu Jul 26 11:03:54 2007 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:03 2007 -0700"
      },
      "message": "sysfs/file.c - use mutex instead of semaphore\n\nUse mutex instead of semaphore in sysfs/file.c : sys_buffer.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "967e35dcc9ac194b4a6fad69a5a51f93d69bb0d1",
      "tree": "218c6fc093ec110ee6f4c5d7f0aae448e5f82173",
      "parents": [
        "a1da4dfe35bc36c3bc9716d995c85b7983c38a76"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 18 16:38:11 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 18 15:49:50 2007 -0700"
      },
      "message": "sysfs: cosmetic clean up on node creation failure paths\n\nNode addition failure is detected by testing return value of\nsysfs_addfm_finish() which returns the number of added and removed\nnodes.  As the function is called as the last step of addition right\non top of error handling block, the if blocks looked like the\nfollowing.\n\n\tif (sysfs_addrm_finish(\u0026acxt))\n\t\tsuccess handling, usually return;\n\t/* fall through to error handling */\n\nThis is the opposite of usual convention in sysfs and makes the code\ndifficult to understand.  This patch inverts the test and makes those\nblocks look more like others.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Gabriel C \u003cnix.or.die@googlemail.com\u003e\nCc: Miles Lane \u003cmiles.lane@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "51225039f3cf9d250596d1344494b293274b9169",
      "tree": "4e646ab37043068824a146c7353c6242a4eb72df",
      "parents": [
        "53e0ae92690c52eceb997905d85fbb42de5fff63"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 04:27:25 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:09 2007 -0700"
      },
      "message": "sysfs: make directory dentries and inodes reclaimable\n\nThis patch makes dentries and inodes for sysfs directories\nreclaimable.\n\n* sysfs_notify() is modified to walk sysfs_dirent tree instead of\n  dentry tree.\n\n* sysfs_update_file() and sysfs_chmod_file() use sysfs_get_dentry() to\n  grab the victim dentry.\n\n* sysfs_rename_dir() and sysfs_move_dir() grab all dentries using\n  sysfs_get_dentry() on startup.\n\n* Dentries for all shadowed directories are pinned in memory to serve\n  as lookup start point.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fb6896da37f19be4b75154c14d1cd79231255b17",
      "tree": "d1480206694a0642067dc7dc5b40bd63b038cac0",
      "parents": [
        "3007e997de91ec59af39a3f9c91595b31ae6e08b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 04:27:24 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:09 2007 -0700"
      },
      "message": "sysfs: restructure add/remove paths and fix inode update\n\nThe original add/remove code had the following problems.\n\n* parent\u0027s timestamps are updated on dentry instantiation.  this is\n  incorrect with reclaimable files.\n\n* updating parent\u0027s timestamps isn\u0027t synchronized.\n\n* parent nlink update assumes the inode is accessible which won\u0027t be\n  true once directory dentries are made reclaimable.\n\nThis patch restructures add/remove paths to resolve the above\nproblems.  Add/removal are done in the following steps.\n\n1. sysfs_addrm_start() : acquire locks including sysfs_mutex and other\n   resources.\n\n2-a. sysfs_add_one() : add new sd.  linking the new sd into the\n     children list is caller\u0027s responsibility.\n\n2-b. sysfs_remove_one() : remove a sd.  unlinking the sd from the\n     children list is caller\u0027s responsibility.\n\n3. sysfs_addrm_finish() : release all resources and clean up.\n\nSteps 2-a and/or 2-b can be repeated multiple times.\n\nParent\u0027s inode is looked up during sysfs_addrm_start().  If available\n(always at the moment), it\u0027s pinned and nlink is updated as sd\u0027s are\nadded and removed.  Timestamps are updated during finish if any sd has\nbeen added or removed.  If parent\u0027s inode is not available during\nstart, sysfs_mutex ensures that parent inode is not created till\nadd/remove is complete.\n\nAll the complexity is contained inside the helper functions.\nEspecially, dentry/inode handling is properly hidden from the rest of\nsysfs which now mostly operate on sysfs_dirents.  As an added bonus,\ncodes which use these helpers to add and remove sysfs_dirents are now\nmore structured and simpler.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3007e997de91ec59af39a3f9c91595b31ae6e08b",
      "tree": "4ed4df3ef3a249d2a4b562e36876fc8d4a3fabd9",
      "parents": [
        "5f9953237f684ea1778adb9d26162da00b282225"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 04:27:23 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:08 2007 -0700"
      },
      "message": "sysfs: use sysfs_mutex to protect the sysfs_dirent tree\n\nAs kobj sysfs dentries and inodes are gonna be made reclaimable,\ni_mutex can\u0027t be used to protect sysfs_dirent tree.  Use sysfs_mutex\nglobally instead.  As the whole tree is protected with sysfs_mutex,\nthere is no reason to keep sysfs_rename_sem.  Drop it.\n\nWhile at it, add docbook comments to functions which require\nsysfs_mutex locking.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "608e266a2d4e62c1b98c1c573064b6afe8c06a58",
      "tree": "73d670ab6c315b42273bc9d2731ec2b8e7c199af",
      "parents": [
        "f0b0af4792d751106e2003f96af76fa95e10c68d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 04:27:22 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:08 2007 -0700"
      },
      "message": "sysfs: make kobj point to sysfs_dirent instead of dentry\n\nAs kobj sysfs dentries and inodes are gonna be made reclaimable,\ndentry can\u0027t be used as naming token for sysfs file/directory, replace\nkobj-\u003edentry with kobj-\u003esd.  The only external interface change is\nshadow directory handling.  All other changes are contained in kobj\nand sysfs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f0b0af4792d751106e2003f96af76fa95e10c68d",
      "tree": "09483c5b34009cc815897d885f310d0704d0c396",
      "parents": [
        "380e6fbb729a55b73d5d8409551474884e0d93fc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 04:27:22 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:08 2007 -0700"
      },
      "message": "sysfs: implement sysfs_find_dirent() and sysfs_get_dirent()\n\nImplement sysfs_find_dirent() and sysfs_get_dirent().\nsysfs_dirent_exist() is replaced by sysfs_find_dirent().  These will\nbe used to make directory entries reclamiable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7b595756ec1f49e0049a9e01a1298d53a7faaa15",
      "tree": "cd06687ab3e5c7a5a4ef91903dff207a18c4db76",
      "parents": [
        "dbde0fcf9f8f6d477af3c32d9979e789ee680cde"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:17 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:06 2007 -0700"
      },
      "message": "sysfs: kill unnecessary attribute-\u003eowner\n\nsysfs is now completely out of driver/module lifetime game.  After\ndeletion, a sysfs node doesn\u0027t access anything outside sysfs proper,\nso there\u0027s no reason to hold onto the attribute owners.  Note that\noften the wrong modules were accounted for as owners leading to\naccessing removed modules.\n\nThis patch kills now unnecessary attribute-\u003eowner.  Note that with\nthis change, userland holding a sysfs node does not prevent the\nbacking module from being unloaded.\n\nFor more info regarding lifetime rule cleanup, please read the\nfollowing message.\n\n  http://article.gmane.org/gmane.linux.kernel/510293\n\n(tweaked by Greg to not delete the field just yet, to make it easier to\nmerge things properly.)\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "73107cb3ad3963c0f929ae681c05081eafb1c079",
      "tree": "78c9647d5e6a0d9c89cb8c37b7533aad8f805302",
      "parents": [
        "0ab66088c855eca68513bdd7442a426c4b374ced"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:16 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:05 2007 -0700"
      },
      "message": "sysfs: kill attribute file orphaning\n\nNow that sysfs_dirent can be disconnected from kobject on deletion,\nthere is no need to orphan each attribute files.  All [bin_]attribute\nnodes are automatically orphaned when the parent node is deleted.\nKill attribute file orphaning.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0ab66088c855eca68513bdd7442a426c4b374ced",
      "tree": "7f931f7f984ac14701a33d123fa9e03d9048bf8f",
      "parents": [
        "eb36165353d0e5ac32b063f555acedcbaf6d3b75"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:16 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:05 2007 -0700"
      },
      "message": "sysfs: implement sysfs_dirent active reference and immediate disconnect\n\nsysfs: implement sysfs_dirent active reference and immediate disconnect\n\nOpening a sysfs node references its associated kobject, so userland\ncan arbitrarily prolong lifetime of a kobject which complicates\nlifetime rules in drivers.  This patch implements active reference and\nmakes the association between kobject and sysfs immediately breakable.\n\nNow each sysfs_dirent has two reference counts - s_count and s_active.\ns_count is a regular reference count which guarantees that the\ncontaining sysfs_dirent is accessible.  As long as s_count reference\nis held, all sysfs internal fields in sysfs_dirent are accessible\nincluding s_parent and s_name.\n\nThe newly added s_active is active reference count.  This is acquired\nby invoking sysfs_get_active() and it\u0027s the caller\u0027s responsibility to\nensure sysfs_dirent itself is accessible (should be holding s_count\none way or the other).  Dereferencing sysfs_dirent to access objects\nout of sysfs proper requires active reference.  This includes access\nto the associated kobjects, attributes and ops.\n\nThe active references can be drained and denied by calling\nsysfs_deactivate().  All active sysfs_dirents must be deactivated\nafter deletion but before the default reference is dropped.  This\nenables immediate disconnect of sysfs nodes.  Once a sysfs_dirent is\ndeleted, it won\u0027t access any entity external to sysfs proper.\n\nBecause attr/bin_attr ops access both the node itself and its parent\nfor kobject, they need to hold active references to both.\nsysfs_get/put_active_two() helpers are provided to help grabbing both\nreferences.  Parent\u0027s is acquired first and released last.\n\nUnlike other operations, mmapped area lingers on after mmap() is\nfinished and the module implement implementing it and kobj need to\nstay referenced till all the mapped pages are gone.  This is\naccomplished by holding one set of active references to the bin_attr\nand its parent if there have been any mmap during lifetime of an\nopenfile.  The references are dropped when the openfile is released.\n\nThis change makes sysfs lifetime rules independent from both kobject\u0027s\nand module\u0027s.  It not only fixes several race conditions caused by\nsysfs not holding onto the proper module when referencing kobject, but\nalso helps fixing and simplifying lifetime management in driver model\nand drivers by taking sysfs out of the equation.\n\nPlease read the following message for more info.\n\n  http://article.gmane.org/gmane.linux.kernel/510293\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3e5190380ebef77f2b015c9e7a4ca225a3d75021",
      "tree": "08d17cd0562acf5101063e93c649f5f71f80b3b9",
      "parents": [
        "0c096b507f15397da890051ee73de4266d3941fb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:15 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:04 2007 -0700"
      },
      "message": "sysfs: make sysfs_dirent-\u003es_element a union\n\nMake sd-\u003es_element a union of sysfs_elem_{dir|symlink|attr|bin_attr}\nand rename it to s_elem.  This is to achieve...\n\n* some level of type checking : changing symlink to point to\n  sysfs_dirent instead of kobject is much safer and less painful now.\n* easier / standardized dereferencing\n* allow sysfs_elem_* to contain more than one entry\n\nWhere possible, pointer is obtained by directly deferencing from sd\ninstead of going through other entities.  This reduces dependencies to\ndentry, inode and kobject.  to_attr() and to_bin_attr() are unused now\nand removed.\n\nThis is in preparation of object reference simplification.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0c096b507f15397da890051ee73de4266d3941fb",
      "tree": "c6b7d204a493157b3926bdb46500313eee9f9690",
      "parents": [
        "13b3086d2ea483cbcae5a4236446cecc082a72cf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:15 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:04 2007 -0700"
      },
      "message": "sysfs: add sysfs_dirent-\u003es_name\n\nAdd s_name to sysfs_dirent.  This is to further reduce dependency to\nthe associated dentry.  Name is copied for directories and symlinks\nbut not for attributes.\n\nWhere possible, name dereferences are converted to use sd-\u003es_name.\nsysfs_symlink-\u003elink_name and sysfs_get_name() are unused now and\nremoved.\n\nThis change allows symlink to be implemented using sysfs_dirent tree\nproper, which is the last remaining dentry-dependent sysfs walk.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a26cd7226c24c3be5dd5f48a74832fe64beb8489",
      "tree": "0dfb4a15d800494a06a4ddf83c4d33812c404fac",
      "parents": [
        "996b73764e9bb9d5e751fd15b130ba38637d66a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:14 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:04 2007 -0700"
      },
      "message": "sysfs: consolidate sysfs_dirent creation functions\n\nCurrently there are four functions to create sysfs_dirent -\n__sysfs_new_dirent(), sysfs_new_dirent(), __sysfs_make_dirent() and\nsysfs_make_dirent().  Other than sysfs_make_dirent(), no function has\ntwo users if calls to implement other functions are excluded.\n\nThis patch consolidates sysfs_dirent creation functions into the\nfollowing two.\n\n* sysfs_new_dirent() : allocate and initialize\n* sysfs_attach_dirent() : attach to sysfs_dirent hierarchy and/or\n\t\t\t  associate with dentry\n\nThis simplifies interface and gives callers more flexibility.  This is\nin preparation of object reference simplification.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "92f4c701aad794de9e4cf7341d0a486aed027c46",
      "tree": "59a47427d43670a50409fc91d68a325e7cfa0ab7",
      "parents": [
        "884c3d751093446918c2f7a4b2c745f28cf91c39"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "use simple_read_from_buffer() in fs/\n\nCleanup using simple_read_from_buffer() in binfmt_misc, configfs, and sysfs.\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "523ded71de0c5e66973335bf99a80edfda9f401b",
      "tree": "20f47e8ed91018977d9fb7f4169a6ef8db407b82",
      "parents": [
        "fa1a8c23eb7d3ded8a3c6d0e653339a2bc7fca9e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Apr 26 00:12:04 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:32 2007 -0700"
      },
      "message": "device_schedule_callback() needs a module reference\n\nThis patch (as896b) fixes an oversight in the design of\ndevice_schedule_callback().  It is necessary to acquire a reference to the\nmodule owning the callback routine, to prevent the module from being\nunloaded before the callback can run.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Satyam Sharma \u003csatyam.sharma@gmail.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e7b0d26a86943370c04d6833c6edba2a72a6e240",
      "tree": "696e696176a1e72abb80afa6112fc057b39bf86b",
      "parents": [
        "d9a9cdfb078d755e648d53ec25b7370f84ee5729"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Mar 15 15:51:28 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 15 15:29:26 2007 -0700"
      },
      "message": "[PATCH] sysfs: reinstate exclusion between method calls and attribute unregistration\n\nThis patch (as869) reinstates the mutual exclusion between sysfs\nattribute method calls and attribute unregistration.  The\npreviously-reported deadlocks have been fixed, and this exclusion is\nby far the simplest way to avoid races during driver unbinding.\n\nThe check for orphaned read-buffers has been moved down slightly, so\nthat the remainder of a partially-read buffer will still be available\nto userspace even after the attribute has been unregistered.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9a9cdfb078d755e648d53ec25b7370f84ee5729",
      "tree": "308380483fd6241b1d0ef5916b9329c1c5df00f6",
      "parents": [
        "6ab27c6bf38d5ff71dafeca77b79e7c284804b75"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Mar 15 15:50:34 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 15 15:29:26 2007 -0700"
      },
      "message": "[PATCH] sysfs and driver core: add callback helper, used by SCSI and S390\n\nThis patch (as868) adds a helper routine for device drivers that need\nto set up a callback to perform some action in a different process\u0027s\ncontext.  This is intended for use by attribute methods that want to\nunregister themselves or their parent device.  Attribute method calls\nare mutually exclusive with unregistration, so such actions cannot be\ntaken directly.\n\nTwo attribute methods are converted to use the new helper routine: one\nfor SCSI device deletion and one for System/390 ccwgroup devices.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfa87c824a9a5430008acd1ed2e8111ed164fcbe",
      "tree": "1e25c9d6a00b409e3cd6a7d304fe2b98eb955309",
      "parents": [
        "b5e795f8df42936590ba9c606edc715fe3593284"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Tue Feb 20 15:02:44 2007 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 15:03:46 2007 -0800"
      },
      "message": "sysfs: allow attributes to be added to groups\n\nThis patch (as860) adds two new sysfs routines:\nsysfs_add_file_to_group() and sysfs_remove_file_from_group().\nA later patch adds code that uses the new routines.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f95d882d81ee731be2a4a3b34f86810e29b68836",
      "tree": "bf4d2f2471c354bd3ddbf60e073ba69cd0e755fc",
      "parents": [
        "8a03d9a498eaf02c8a118752050a5154852c13bf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Feb 10 14:41:56 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 16 15:30:10 2007 -0800"
      },
      "message": "PCI/sysfs/kobject kernel-doc fixes\n\nFix kernel-doc warnings in PCI, sysfs, and kobject files.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "82244b169ed2eee1ef7f97a3a6693f5a6eff8a69",
      "tree": "544170373b626e7cd110070930446208476b625e",
      "parents": [
        "b067db49e1f4013ef02ef68845701b600e88a722"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.name",
        "time": "Tue Jan 02 08:48:08 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:13 2007 -0800"
      },
      "message": "sysfs: error handling in sysfs, fill_read_buffer()\n\nif a driver returns an error in fill_read_buffer(), the buffer will be\nmarked as filled. Subsequent reads will return eof. But there is\nno data because of an error, not because it has been read.\nNot marking the buffer filled is the obvious fix.\n\nSigned-off-by: Oliver Neukum \u003coliver@neukum.name\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f75065367077bd3b77842a5aa523ecd05d33e82d",
      "tree": "8c88382e578c2df7ff14ec005ae821dd4b36379e",
      "parents": [
        "d3fc373ac5061cab7a654502b942e7d00e77f733"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Tue Jan 02 13:41:10 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:13 2007 -0800"
      },
      "message": "sysfs: kobject_put cleanup\n\nThis patch removes redundant argument checks for kobject_put().\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "94bebf4d1b8e7719f0f3944c037a21cfd99a4af7",
      "tree": "25c6ba1836e74f608b4e434b4f0f4d5c28b11de1",
      "parents": [
        "cb986b749c7178422bfbc982cd30e04d5db54bbc"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Wed Dec 20 10:52:44 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 07 10:37:13 2007 -0800"
      },
      "message": "Driver core: fix race in sysfs between sysfs_remove_file() and read()/write()\n\nThis patch prevents a race between IO and removing a file from sysfs.\nIt introduces a list of sysfs_buffers associated with a file at the inode.\nUpon removal of a file the list is walked and the buffers marked orphaned.\nIO to orphaned buffers fails with -ENODEV. The driver can safely free\nassociated data structures or be unloaded.\n\nSigned-off-by: Oliver Neukum \u003coliver@neukum.name\u003e\nAcked-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "f427f5d5d6b0eb729505a2d9c0a6cad22734a74c",
      "tree": "d9e15c44036407c74e7ff31f083f3aef6902c0dd",
      "parents": [
        "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] sysfs: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the sysfs\nfilesystem code.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "035ed7a49447bc8e15d4d9316fc6a359b2d94333",
      "tree": "2607c8c03a719e4aa4bbbe46ca4ee3eb490755b5",
      "parents": [
        "06a4bcae1ff2cd5f6f42bd74add85ec785a26343"
      ],
      "author": {
        "name": "Thomas Maier",
        "email": "balagi@justmail.de",
        "time": "Sun Oct 22 19:17:47 2006 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:01 2006 -0800"
      },
      "message": "sysfs: sysfs_write_file() writes zero terminated data\n\nsince most of the files in sysfs are text files,\nit would be nice, if the \"store\" function called\nduring sysfs_write_file() gets a zero terminated\nstring / data.\nThe current implementation seems not to ensure this.\n(But only if it is the first time the zeroed buffer\npage is allocated.)\n\nSo the buffer can be scanned by sscanf() easily,\nfor example.\n\nThis patch simply sets a \\0 char behind the\ndata in buffer-\u003epage.\n\nSigned-off-by: Thomas Maier \u003cbalagi@justmail.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "97a501849d60f3dbb8bfcd2300cf65dd5ebc0355",
      "tree": "512d61381ac414994052a13d746150535788a72a",
      "parents": [
        "e42344514c6e8ca7f5427da9b1407b56550dfa01"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Sep 20 16:49:02 2006 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:54 2006 -0700"
      },
      "message": "sysfs: update obsolete comment in sysfs_update_file\n\nAnd the obsolete comment should be updated (or totally removed).\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e42344514c6e8ca7f5427da9b1407b56550dfa01",
      "tree": "4dd26210cc0bb5147a455ef9b097266d0218c3b9",
      "parents": [
        "722385f75efd82d9f480f0765a1e97a4d83cac0d"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Sep 20 16:38:00 2006 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Oct 18 12:49:54 2006 -0700"
      },
      "message": "sysfs: remove duplicated dput in sysfs_update_file\n\nFollowing function can drops d_count twice against one reference\nby lookup_one_len.\n\n\u003cSOURCE\u003e\n/**\n * sysfs_update_file - update the modified timestamp on an object attribute.\n * @kobj: object we\u0027re acting for.\n * @attr: attribute descriptor.\n */\nint sysfs_update_file(struct kobject * kobj, const struct attribute * attr)\n{\n        struct dentry * dir \u003d kobj-\u003edentry;\n        struct dentry * victim;\n        int res \u003d -ENOENT;\n\n        mutex_lock(\u0026dir-\u003ed_inode-\u003ei_mutex);\n        victim \u003d lookup_one_len(attr-\u003ename, dir, strlen(attr-\u003ename));\n        if (!IS_ERR(victim)) {\n                /* make sure dentry is really there */\n                if (victim-\u003ed_inode \u0026\u0026\n                    (victim-\u003ed_parent-\u003ed_inode \u003d\u003d dir-\u003ed_inode)) {\n                        victim-\u003ed_inode-\u003ei_mtime \u003d CURRENT_TIME;\n                        fsnotify_modify(victim);\n\n                        /**\n                         * Drop reference from initial sysfs_get_dentry().\n                         */\n                        dput(victim);\n                        res \u003d 0;\n                } else\n                        d_drop(victim);\n\n                /**\n                 * Drop the reference acquired from sysfs_get_dentry() above.\n                 */\n                dput(victim);\n        }\n        mutex_unlock(\u0026dir-\u003ed_inode-\u003ei_mutex);\n\n        return res;\n}\n\u003c/SOURCE\u003e\n\nPCI-hotplug (drivers/pci/hotplug/pci_hotplug_core.c) is only user of\nthis function. I confirmed that dentry of /sys/bus/pci/slots/XXX/*\nhave negative d_count value.\n\nThis patch removes unnecessary dput().\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5c1fdf4150c3b4e486020d0ada787469900d66ed",
      "tree": "548af19a34ebf554774e7373fbd7825cf30ab165",
      "parents": [
        "4779efca147475a708e84d902e096bbd20e613b7"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Tue Oct 03 01:16:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:19 2006 -0700"
      },
      "message": "[PATCH] pr_debug: sysfs: use size_t length modifier in pr_debug format arguments\n\nsysfs: use size_t length modifier in pr_debug format arguments\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4508a7a734b111b8b7e39986237d84acb1168dd0",
      "tree": "8fe535fbb97d619c9069da26367ead03d1a294aa",
      "parents": [
        "f043ca43c1ae354346f72dc5826d820d5619f0b2"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 20 17:53:53 2006 +1100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 14 11:41:24 2006 -0700"
      },
      "message": "[PATCH] sysfs: Allow sysfs attribute files to be pollable\n\nIt works like this:\n  Open the file\n  Read all the contents.\n  Call poll requesting POLLERR or POLLPRI (so select/exceptfds works)\n  When poll returns,\n     close the file and go to top of loop.\n   or lseek to start of file and go back to the \u0027read\u0027.\n\nEvents are signaled by an object manager calling\n   sysfs_notify(kobj, dir, attr);\n\nIf the dir is non-NULL, it is used to find a subdirectory which\ncontains the attribute (presumably created by sysfs_create_group).\n\nThis has a cost of one int  per attribute, one wait_queuehead per kobject,\none int per open file.\n\nThe name \"sysfs_notify\" may be confused with the inotify\nfunctionality.  Maybe it would be nice to support inotify for sysfs\nattributes as well?\n\nThis patch also uses sysfs_notify to allow /sys/block/md*/md/sync_action\nto be pollable\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6e0dd741a89be35defa05bd79f4211c5a2762825",
      "tree": "565d0328e9e353884e9d5785590e6d4be99e0964",
      "parents": [
        "597a7679dd83691be2f3a53e1f3f915b4a7f6eba"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Mar 31 15:37:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 02 13:03:31 2006 -0700"
      },
      "message": "[PATCH] sysfs: zero terminate sysfs write buffers\n\nNo one should be writing a PAGE_SIZE worth of data to a normal sysfs\nfile, so properly terminate the buffer.\n\nThanks to Al Viro for pointing out my supidity here.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c516865cfbac0d862d4888df91793ad1e74ffd58",
      "tree": "432024125976af3e6c87ae5b9e64b6f1cc291f70",
      "parents": [
        "22f98c0cd7e003b896ee52ded945081307118745"
      ],
      "author": {
        "name": "Maneesh Soni",
        "email": "maneesh@in.ibm.com",
        "time": "Thu Mar 09 19:40:14 2006 +0530"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:59 2006 -0800"
      },
      "message": "[PATCH] sysfs: fix problem with duplicate sysfs directories and files\n\nThe following patch checks for existing sysfs_dirent before\npreparing new one while creating sysfs directories and files.\n\nSigned-off-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "58d49283b87751f7af75e021a629dcddb027e8eb",
      "tree": "b553643f22a4a216e06c5ab1711a88d3df1e1e6a",
      "parents": [
        "03e88ae1b13dfdc8bbaa59b8198e1ca53aad12ac"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed Feb 22 11:18:15 2006 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:58 2006 -0800"
      },
      "message": "[PATCH] sysfs: kzalloc conversion\n\nthis converts fs/sysfs to kzalloc() usage.\ncompile tested with make allyesconfig\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bc062b1b5c6bef4e3a29c7fda57967251d12beb0",
      "tree": "57dceb8371d0e83e7772b3deeb4a9e8dd2ae6b03",
      "parents": [
        "30d07a22a19329c89628a2057b0120245c482c9e"
      ],
      "author": {
        "name": "Maneesh Soni",
        "email": "maneesh@in.ibm.com",
        "time": "Fri Jul 29 12:13:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 29 13:12:49 2005 -0700"
      },
      "message": "[PATCH] sysfs: fix sysfs_chmod_file\n\no sysfs_chmod_file() must update the new iattr field in sysfs_dirent else\n  the mode change will not be persistent in case of inode evacuation from\n  cache.\n\nSigned-off-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eeca28300df110bd6ed54b31193c83b87921443",
      "tree": "7db42d8a18d80eca538f5b7d25e0532b8fa38b85",
      "parents": [
        "bd4c625c061c2a38568d0add3478f59172455159"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Tue Jul 12 17:06:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 20:38:38 2005 -0700"
      },
      "message": "[PATCH] inotify\n\ninotify is intended to correct the deficiencies of dnotify, particularly\nits inability to scale and its terrible user interface:\n\n        * dnotify requires the opening of one fd per each directory\n          that you intend to watch. This quickly results in too many\n          open files and pins removable media, preventing unmount.\n        * dnotify is directory-based. You only learn about changes to\n          directories. Sure, a change to a file in a directory affects\n          the directory, but you are then forced to keep a cache of\n          stat structures.\n        * dnotify\u0027s interface to user-space is awful.  Signals?\n\ninotify provides a more usable, simple, powerful solution to file change\nnotification:\n\n        * inotify\u0027s interface is a system call that returns a fd, not SIGIO.\n\t  You get a single fd, which is select()-able.\n        * inotify has an event that says \"the filesystem that the item\n          you were watching is on was unmounted.\"\n        * inotify can watch directories or files.\n\nInotify is currently used by Beagle (a desktop search infrastructure),\nGamin (a FAM replacement), and other projects.\n\nSee Documentation/filesystems/inotify.txt.\n\nSigned-off-by: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3d41088fa327782b14b5659dbcfff62ec704c23c",
      "tree": "bd9a25f9ae7a0e232c9d5006849905e31a9dbc92",
      "parents": [
        "363412b4f70a2ba19c76a01da7580472399312d4"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Thu Jun 23 22:05:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:40 2005 -0700"
      },
      "message": "[PATCH] DocBook: update comments\n\nThis patch updates some comments to match code changes.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5f45f1a78fbac3cc859ec10c5366e97d20d40fa2",
      "tree": "bafacf11adbfb4eebf2d2d80d92e1fe2d9c02b18",
      "parents": [
        "ac20427ef6aa63da663bdc88b71d16f7394f5e23"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:09:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:20 2005 -0700"
      },
      "message": "[PATCH] remove duplicate get_dentry functions in various places\n\nVarious filesystem drivers have grown a get_dentry() function that\u0027s a\nduplicate of lookup_one_len, except that it doesn\u0027t take a maximum length\nargument and doesn\u0027t check for \\0 or / in the passed in filename.\n\nSwitch all these places to use lookup_one_len.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9d9d27fb651a7c95a46f276bacb4329db47470a6",
      "tree": "cf25134082cb61e860f65af73adc91674ec74258",
      "parents": [
        "42b16c051c3f462095fb8c9bad1bc05b34518cb9"
      ],
      "author": {
        "name": "Jon Smirl",
        "email": "jonsmirl@gmail.com",
        "time": "Tue Jun 14 09:54:54 2005 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:38 2005 -0700"
      },
      "message": "[PATCH] SYSFS: fix PAGE_SIZE check\n\nWithout this change I can\u0027t set an attribute exactly PAGE_SIZE in\nlength. There is no need for zero termination because the interface\nuses lengths.\n\nFrom: Jon Smirl \u003cjonsmirl@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "c76d0abd07a9c9cf72bbb5b641e1e97f92ea8f3e",
      "tree": "c5f3c752031dfb8b7c5a624d06b129661eec5665",
      "parents": [
        "d48593bf208e0d046c35fb0707ae5b23fef8c4ff"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Fri Apr 29 01:22:00 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:02 2005 -0700"
      },
      "message": "[PATCH] sysfs: if show/store is missing return -EIO\n\nsysfs: if attribute does not implement show or store method\n       read/write should return -EIO instead of 0 or -EINVAL.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "67be2dd1bace0ec7ce2dbc1bba3f8df3d7be597e",
      "tree": "317d114a0288d3b19ef9902f94b536a5a8731dbd",
      "parents": [
        "6013d5445f9a6d0b28090027868f455c5012d1cc"
      ],
      "author": {
        "name": "Martin Waitz",
        "email": "tali@admingilde.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:26 2005 -0700"
      },
      "message": "[PATCH] DocBook: fix some descriptions\n\nSome KernelDoc descriptions are updated to match the current code.\nNo code changes.\n\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "31e5abe9a6dab1ed3a5c30352bdb001353146318",
      "tree": "941317d6f91fe2bd0cb605692230b65686ca13e0",
      "parents": [
        "6897089c5f7989603ccb9c696050470ba1dbd262"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Apr 18 21:57:32 2005 -0700"
      },
      "committer": {
        "name": "Greg KH",
        "email": "greg@press.kroah.org",
        "time": "Mon Apr 18 21:57:32 2005 -0700"
      },
      "message": "[PATCH] sysfs: add sysfs_chmod_file()\n\nsysfs: allow changing the permissions for already created attributes\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
