Consider an assignment of bits to the vertices of a connected graph G(V, E) with the property that the value of each vertex is a function of the values of its neighbors. A collection of such assignments is called a storage code of length |V | on G. The storage code problem can be equivalently formulated as maximizing the probability of success in a guessing game on graphs, or constructing index codes of small rate.If G contains many cliques, it is easy to construct codes of rate close to 1, so a natural problem is to construct high-rate codes on triangle-free graphs, where constructing codes of rate > 1/2 is a nontrivial task, with few known results. In this work we construct infinite families of linear storage codes with high rate relying on coset graphs of binary linear codes. We also derive necessary conditions for such codes to have high rate, and even rate potentially close to one.We also address correction of multiple erasures in the codeword, deriving recovery guarantees based on expansion properties of the graph.Finally, we point out connections between linear storage codes and quantum CSS codes, a link to bootstrap percolation and contagion spread in graphs, and formulate a number of open problems.