{"push_id":688832528,"size":1,"distinct_size":1,"ref":"refs/heads/cm-12.1_staging","head":"60581e89301316e268595da2f2580f5d9634d484","before":"68510622edb6517b169902aa0a505f5545430a32","commits":[{"sha":"60581e89301316e268595da2f2580f5d9634d484","author":{"email":"1c00aa603bb92d594c03cff60ecf8e63b2a5bcb1@suse.de","name":"NeilBrown"},"message":"lockd: send correct lock when granting a delayed lock.\n\ncommit 2ec197db1a56c9269d75e965f14c344b58b2a4f6 upstream.\n\nIf an NFS client attempts to get a lock (using NLM) and the lock is\nnot available, the server will remember the request and when the lock\nbecomes available it will send a GRANT request to the client to\nprovide the lock.\n\nIf the client already held an adjacent lock, the GRANT callback will\nreport the union of the existing and new locks, which can confuse the\nclient.\n\nThis happens because __posix_lock_file (called by vfs_lock_file)\nupdates the passed-in file_lock structure when adjacent or\nover-lapping locks are found.\n\nTo avoid this problem we take a copy of the two fields that can\nbe changed (fl_start and fl_end) before the call and restore them\nafterwards.\nAn alternate would be to allocate a 'struct file_lock', initialise it,\nuse locks_copy_lock() to take a copy, then locks_release_private()\nafter the vfs_lock_file() call.  But that is a lot more work.\n\nReported-by: Olaf Kirch <okir@suse.com>\nSigned-off-by: NeilBrown <neilb@suse.de>\nSigned-off-by: J. Bruce Fields <bfields@redhat.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\n--\nv1 had a couple of issues (large on-stack struct and didn't really work properly).\nThis version is much better tested.\nSigned-off-by: J. Bruce Fields <bfields@redhat.com>","distinct":true,"url":"https://api.github.com/repos/Starship-Android/android_kernel_lge_hammerhead-starship/commits/60581e89301316e268595da2f2580f5d9634d484"}]}