Hi Allison, there are races between read and punch hole too. After pages are released and before punch hole hold i_data_sem, a page can be mapped by read, then write can be done on the page. Maybe we should separate punch hole from fallocate, and solve the races in vfs layer. Yongqiang. On Thu, Sep 1, 2011 at 8:33 AM, Allison Henderson <achender@xxxxxxxxxxxxxxxxxx> wrote: > Hi All, > > In ext4 punch hole, we realized that the punch hole operation needs to be > done under i_mutex just like truncate. i_mutex for truncate is held in the > vfs layer, so we dont need to lock it at the file system layer, but vfs does > not lock i_mutex for fallocate. We can lock i_mutex for fallocate at the fs > layer, but question was raised then: should i_mutex for fallocate be held in > the vfs layer instead? I do not know if other file systems need i_mutex to > be locked for fallocate, or if they might be locking it already, so I am > doing some investigating on this idea, and also the appropriate use of > i_mutex in general. Can someone provide some insight this topic? Thx! > > Allison Henderson > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- Best Wishes Yongqiang Yang -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html